[FAQ CENTER トップ]
[Redhat Enterprise linux 6(EL) FAQ トップへ]





【質問】/usr/bin/bash^M: bad interpreter: そのようなファイルやデ ィレクトリはありません | シェルスクリプトが動作しない

環境:Redhat Enterprise linux 6(EL)

【回答】
シェルスクリプトを実行すると以下のエラーが表示される場合があります。
/usr/bin/bash^M: bad interpreter: そのようなファイルやデ ィレクトリはありません

結論としては、不要なコードが挿入されていて、OSが異常なファイルと判断しているためエラーが発生しています。
不要なコードはエディタ上には表示されていないため、ユーザは気が付きません。

■Windowsの改行コードは以下のとおりです。
CR(Carriage Return)+LF(Line Feed)

■UNIX系の改行コードは以下のとおりです。
LF(Line Feed)


もし、UNIX系のファイルをWindowsのエディタで保管すると、UNIX系では不要な「CR(Carriage Return)」が挿入されてしまい、エラーとなってしまいます。

これは cat -e コマンドでも確認が出来ます。
cat -e コマンドを実行すると、不要な ^M が挿入されていることが分かります。

#!/usr/bin/bash^M$

対応はシェルスクリプト内のCR(Carriage Return)を除去します。

#sed -i 's/\r//' <ファイル名>



(*)本ページは Redhat Enterprise Linux 6以後を想定しています。

最終更新日:2015/04/18



[Redhat Enterprise linux 6(EL) FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2012