42

スクリプトを実行しようとするshと、Mac で次のエラーが発生します。

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

どうすればこれを修正できますか?

4

6 に答える 6

53

/usr/bin/perl^M:

スクリプトの先頭の行から^M末尾の を削除します。これは、シェルを狂わせる偽の ASCII 13 文字です。usr/bin/perl#!

文字が表示されない場合は、バイナリ エディタでファイルを検査する必要があります。

ファイルを Mac の改行形式に変換するには、次のようにします。

$ vi your_script.sh

viタイプで一度:

 :set ff=unix

 :x
于 2013-06-16T07:56:44.440 に答える
7

問題は、Linux/Unix/OSX マシンで DOS/Windows テキスト形式を使用しようとしていることです。

DOS/Windows テキスト ファイルでは、改行とも呼ばれる改行は、キャリッジ リターン (CR) とそれに続くライン フィード (LF) の 2 つの文字の組み合わせです。Unix テキスト ファイルでは、改行は単一の文字、つまりライン フィード (LF) です。

Dos2unix は、ファイルのエンコーディングを変換できます。例:

dos2unix yourfile yourfile

ヘルプが必要な場合は、次を実行してください: man dos2unix.

于 2014-09-01T09:28:04.587 に答える
6

スクリプトに奇妙な行末があるようです:^Mは改行\rです。スクリプトを Unix の行末に変換します ( Windows システムでの行末である の\n代わりに)。\r\n

于 2013-06-16T07:58:30.290 に答える