需要一点帮助。我刚刚写了我的第一个脚本来更改网络配置。代码是
echo "changing IP to 172.17.51.71"
echo "changing Mask to 255.255.255.0"
echo "changing Gateway to 172.17.51.254"
sed -i 's/.*IPADDR.*$/IPADDR=172.17.51.71/g' /etc/ifcfg-eth0.txt
# ne need to change mask sed -i 's/.*IPADDR.*$/IPADDR=172.17.51.71/g' /etc/ifcfg-eth0
sed -i 's/.*GATEWAY.*$/GATEWAY=172.17.51.254/g' /etc/ifcfg-eth0.txt
我把icfg-eth0
文件复制到etc
文件夹中进行测试。当我运行脚本时,出现错误
:No such file or diretorytxt
:No such file or diretorytxt
但是当我仅使用提示上的命令时,该命令就会起作用并改变我想要改变的内容。
知道为什么它在作为脚本运行时不起作用吗?
AsteriskNOWv3(CentOS 6.2)
答案1
最可能的原因是您在 Windows 上编辑了脚本,并且其行以 CR-LF 而不是预期的单个 LF 终止。
使用dos2unix
命令来修复它。
dos2unix script
或者你也可以直接运行
tr -d `\r` < script > script.fixed
答案2
在我看来,您已将“.txt”添加到您正在写入的文件中 - 这似乎是错误的,因为“。”后面的位被视为 VLAN,而 .txt 当然不是有效的 VLAN。