Sassyブログ

好きなことで暮らしを豊かにするブログ

シェルスクリプトの実行で No such file or directory が発生した場合の対処法

環境

  • CentOS6.8

エラー内容

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

原因

上記、エラーの原因はシェルスクリプトの改行コードの違い(「\n」ではなく「\r\n」になっている)により、処理できなかった場合に発生します。

対処法

このエラーを解決するには、改行コードを「\r\n」から「\n」に置き換えてあげる必要があります。
そこで、便利なコマンドがあります。 コマンド名は「sed(セド)」です。

コマンド

下記コマンドをそのままコピペして、「[対象ファイル]」の部分だけ対象のファイル名に変更してあげればよいです。

$ sed -i 's/\r//' [対象ファイル]

sedとは?

入力データに対して、テキスト処理を行うプログラムです。 ちなみに、「sed」は「Stream Editor」の略です。

オプションとスクリプトコマンドの解説

-iは、オプションです。
これは、ファイルを直接編集します。

's/\r//'の部分のsスクリプトコマンドになります。

これは、 \r を空文字 "" に置き換えるという意味になります。

最後に

Linuxのコマンドは慣れてしまえば問題ないのですが、慣れないうちはなかなか大変です。

以下にオススメ書籍をご紹介しますので是非読んでみてください!

以上