【回答】
シェルスクリプトを実行すると以下のエラーが表示される場合があります。
/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 トップ]