![向 bash 脚本添加标题、命令和文件内容](https://linux22.com/image/1067976/%E5%90%91%20bash%20%E8%84%9A%E6%9C%AC%E6%B7%BB%E5%8A%A0%E6%A0%87%E9%A2%98%E3%80%81%E5%91%BD%E4%BB%A4%E5%92%8C%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9.png)
根据这篇文章,我想自动执行此过程,因此我需要向 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