2014-12-03 70 views
0

我在Openwrt上创建了一个shell脚本“/ etc/aaa”,其中包含以下代码: #!/ bin/sh echo“Hello World!”未找到Linux shell脚本,但它确实存在

我也用这个命令,以确保适当的权限:

chmod 777 /etc/aaa 

在与任何下面的2命令

sh /etc/aaa 

ash /etc/aaa 

的执行它工作得很好并打印“Hello World”。

/etc/aaa 

在那里我得到这个错误:

-ash: /etc/aaa: not found 

谁能请解释为什么发生这种情况时,我尝试使用下面的命令来执行它,会出现问题?我在这里错过了什么?

+0

脚本的可执行权限丢失。 – 2014-12-03 15:12:06

+0

不,我已经使用“chmod 777/etc/aaa”,我不认为它与权限有关。对不起,我忘了提及 – demonguy 2014-12-03 15:12:58

+3

DOS换行符?可能只在第一条(shebang)线上? – 2014-12-03 15:18:15

回答

4

感谢Charles Duffy的评论。这确实是CR LF问题。 虽然我在我的linux虚拟机中打开该文件,因为它已在Windows中进行了修改。所以enven在Linux中,我使用的崇高文本编辑器会认为它是一个Windows文件,并使用crlf作为换行符结尾。

所以,只要用lf替换crlf,问题就解决了。