向 bash 脚本添加标题、命令和文件内容

向 bash 脚本添加标题、命令和文件内容

根据这篇文章,我想自动执行此过程,因此我需要向 bash 脚本 + 文件内容添加命令和标头以运行 ubuntu 18.04 并创建静态 arp 表。例如我的 .sh:

lan=eth0
awk -F";" '{print $3 " " $2}' infile | xargs -I {} echo {} > outfile

注意:文件内容 ip mac

输出:

 192.168.1.1 00:e0:1e:b4:12:42
 192.168.1.2 00:e0:1e:b4:13:43

第一个问题:空头。需要“#!/bin/sh”或“#!/bin/bash”,解决

sed -i -e '1i#!/bin/bash\'

第二个问题:缺少添加 arp 命令“arp -i $lan -s”。解决

sed -e 's/^/arp -i $lan -s /'

现在我需要绑定这些命令来获得这个输出:

 #!/bin/bash
 arp -i eth0 -s 192.168.1.1 00:e0:1e:b4:12:42
 arp -i eth0 -s 192.168.1.2 00:e0:1e:b4:13:43

我应该修复我的命令以添加此内容吗?谢谢

更新(已解决,但是...)

lan=eth0
awk -F";" '{print $3 " " $2}' infile | xargs -I {} echo {} | sed -e 's/^/arp -i $lan -s /' | sed -e '1i#!/bin/bash\' > outfile

现在的问题是变量 $lan

 #!/bin/bash
 arp -i $lan -s 192.168.1.1 00:e0:1e:b4:12:42
 arp -i $lan -s 192.168.1.2 00:e0:1e:b4:13:43

代替

 #!/bin/bash
 arp -i eth0 -s 192.168.1.1 00:e0:1e:b4:12:42
 arp -i eth0 -s 192.168.1.2 00:e0:1e:b4:13:43

相关内容