运行脚本时出现错误“没有这样的文件或目录”

运行脚本时出现错误“没有这样的文件或目录”

需要一点帮助。我刚刚写了我的第一个脚本来更改网络配置。代码是

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。

相关内容