シェルを実行できない失敗例「/bin/bash^M: bad interpreter: No such file or directory」の原因と解決策

シェルを実行しようとすると、以下のようなエラーが返る場合がある。

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

これは、Windowsマシンでシェルスクリプトを書いて、特に何も意識せずにLinuxサーバにそのままアップロードして利用しようとすると発生して
しまう。原因は、Windowsの改行コードとLinuxの改行コードが異なることにあり、Windowsの改行コードがあるために正しくシェルが動作しないこ
とになる。

Windowsの改行コードを削除する方法はいくつかありそうだが、Linuxサーバのviエディタでシェルスクリプトを書いてそのままファイルをLinux上で保存して利用する方法が一番確実だと思う。

だが、それだとLinuxを自前で用意しないといけない面倒さもあるので、Windowsユーザにとって一番簡単なのは、改行コードをテキストエディタで変更して保存する方法。
秀丸エディタ等であれば、改行コードを変更して保存することができるので、「CR+LF」というWindowsの改行コードをLinuxの改行コード「LF」に変更して保存し、それをアップロードしてやればよい。

前へ

Linuxエラー「-bash: /bin/rm: 引数リストが長すぎます」の対処方法について

次へ

opensslのバージョンを確認するコマンド