2014-12-03 72 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,問題就解決了。