Shell Script 報錯: bad interpreter: No such file or directory

如果在執行 Shell Script 時預到 bad interpreter: No such file or directory 報錯, 原因是 Shell Script 第一行指定的 interpreter 路徑錯誤, 系統找不到 interpreter 所致。

解決方法是檢查 Shell Script 第一行的 interpreter, 設定回正確路徑, 一般是 /bin/sh 或 /bin/bash.

另一種情況是 interpreter 設定正確, 但出現像以下報錯:

/bin/sh^M: bad interpreter: No such file or directory


這個問題是因為 Shell Script 是在 Windows 上編輯的, 格式使用了 dos 格式, 在第行結尾加入了 “^M” 字串, 系統找不到 “/bin/sh^M”, 所以便會出現這個問題。

要解決這個問題, 可以用 dos2unix 指令, 例如:

# dos2unix test_script.sh
dos2unix: converting file test_script.sh to UNIX format …

執行完以上指令後, 再試試執行應該沒問題了。


Leave a Reply