运行脚本时获取错误没有这样的文件或目录


0

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

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)


这是您脚本的精确复制/粘贴吗?第二个sed是注释掉的行,中间文件没有.txt扩展名,不包括MASK或255 ......?
beroe 2013年

另外,你是如何运行脚本的?
niglesias

Answers:


2

最可能的原因是您在Windows上编辑了脚本,其行以CR-LF而不是预期的单个LF终止。

使用该dos2unix命令进行修复。

dos2unix script

或者,您可以简单地运行

tr -d `\r` < script > script.fixed

0

在我看来,你已经将“.txt”添加到你正在编写的文件中 - 这似乎是错误的,就像“。”之后的位一样。被认为是VLAN,而.txt当然不是有效的VLAN。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.