スクリプトを実行しようとするshと、Mac で次のエラーが発生します。
/usr/bin/perl^M: bad interpreter: No such file or directory
どうすればこれを修正できますか?
/usr/bin/perl^M:
スクリプトの先頭の行から^M末尾の を削除します。これは、シェルを狂わせる偽の ASCII 13 文字です。usr/bin/perl#!
文字が表示されない場合は、バイナリ エディタでファイルを検査する必要があります。
ファイルを Mac の改行形式に変換するには、次のようにします。
$ vi your_script.sh
viタイプで一度:
 :set ff=unix
 :x
    問題は、Linux/Unix/OSX マシンで DOS/Windows テキスト形式を使用しようとしていることです。
DOS/Windows テキスト ファイルでは、改行とも呼ばれる改行は、キャリッジ リターン (CR) とそれに続くライン フィード (LF) の 2 つの文字の組み合わせです。Unix テキスト ファイルでは、改行は単一の文字、つまりライン フィード (LF) です。
Dos2unix は、ファイルのエンコーディングを変換できます。例:
dos2unix yourfile yourfile
ヘルプが必要な場合は、次を実行してください: man dos2unix.
スクリプトに奇妙な行末があるようです:^Mは改行\rです。スクリプトを Unix の行末に変換します ( Windows システムでの行末である の\n代わりに)。\r\n