No.515


【Bash】/bin/bash^M: bad interpreter【Linux】

bash -n してもエラーないし記述も間違ってないのに…

 この間、ちょっと嵌まった。
 何をしても下記のエラーが出てシェルスクリプトが動かないのだ。

/bin/bash^M: bad interpreter: そのようなファイルやディレクトリはありません
/bin/bash^M: bad interpreter: No such file or directory

 もちろん bash -n でエラーは出ないし、 bash のパスも間違ってない。

 はい。Windowsユーザーの方は気が付きましたかね?


原因:改行コード

 シェルスクリプトを作製したときの環境で、改行コードが \r\n になってることをってみると幸せになれるかもしれない。

 Windowsのメモ帳とかでパッと書いたものを、Linuxにそのまま転送したときによく起こる悲劇として有名だ。

 改行コードは \n にすること。指さし確認の対象にしておこう。