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

シェアする

$ ./hoge.sh
bash: ./hoge.sh: /bin/sh^M: bad interpreter: No such file or directory

ftpとかでwindowsからunixへファイルを転送したとき、改行コードの変換を行わないと思わぬところでエラーが出るよ、という例。普段はFilezillaを使用してるのだが、文字コードの変換が上手くいってないようなので(多分僕の設定が悪い。)エディタの設定変えて対応する。vimなので set fileformat:unix としとく。これで変換不要のまま転送できる。

vimは自動で認識してくれるのか、サーバ上で vim hoge.sh とかしても fileformat が dos になって気がつかない。そこで od コマンドを使って確認する。

$ od -t x4 hoge.sh
0000000 622f2123 732f6e69 630a0d68 64602064
...

LF は 0x0a
CR は 0x0d

となる。hoge.sh は CRLFっすね。ああめんどい。

Sponsored Link

シェアする

フォローする