この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 12633|答える: 0

[Linux] /bin/bash^M: bad interpreter: No such file or directory

[リンクをコピー]
掲載地 2020/06/13 22:40:35 | | | |
シェルスクリプトを実行すると、以下のエラーが返されます。

-bash: ./log_job.sh: /bin/bash^M: 悪いインタプリタ:そのようなファイルやディレクトリは存在しません
エラーの原因:

スクリプト.sh Windowsシステム上で書かれているため、見えない文字が存在する可能性があります。上記のエラープロンプトから、スクリプトファイルはDOS形式である可能性が高いです。つまり、各行の末尾は\r\nで識別され、ASCIIコードは0x0D 0x0Aです。

シェルスクリプトを実行する際に表示されるエラーは主に、シェルスクリプトファイルがDOS形式であること、つまり各行の末尾が\r\nで識別され、UNIXフォーマットファイルの末尾が\nで識別されていることに起因します。

特別な注意:^M はキーシフト+6で生成される^と文字Mではなく、文字であり、そのASCIIは0x0Dです。生成方法はまずCTRL+Vを押し、その後Enter(またはCTRL+M)を押すことです。


解決

スクリプトファイルがDOS形式かUNIX形式かを確認する方法はいくつかあります。

(1) スクリプトの形式を確認する:cat -A ファイル名表示結果から、dos形式で終わるファイル行は^M$、Unix形式で終わるファイル行は$であることが判別できます。



(2) スクリプトの形式を変更する:viファイル名でファイルを開いて実行する:set ff=unixファイルをUnixに設定して実行します:WQ、UNIX形式で保存されています。

  (3) スクリプトの形式を確認する:cat -A ファイル名表示結果から、dos形式で終わるファイル行は^M$、unix形式で終わるファイル行は$であることが判別できます。







先の:SSISチュートリアル1 SQL Server統合サービス入門
次に:Nginxの丸太分割と削除
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com