找不到Linux shell脚本,但确实存在

dem*_*guy 2 linux shell openwrt

我在Openwrt上创建了一个shell脚本"/ etc/aaa",其中包含以下代码:#!/ bin/sh echo"Hello World!"

我还使用此命令来确保适当的权限:

chmod 777 /etc/aaa
Run Code Online (Sandbox Code Playgroud)

在执行以下任何2个命令时

sh /etc/aaa
Run Code Online (Sandbox Code Playgroud)

要么

ash /etc/aaa
Run Code Online (Sandbox Code Playgroud)

它运作良好并打印"Hello World".当我尝试使用此命令执行它时会发生此问题:

/etc/aaa
Run Code Online (Sandbox Code Playgroud)

我收到此错误的地方:

-ash: /etc/aaa: not found
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么会这样吗?我在这里错过了什么?

小智 8

还值得检查您的 shebang 是否正确:#!/bin/sh 或 #!/bin/bash


dem*_*guy 7

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

所以,只需用lf替换crlf,问题就解决了.