1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

[解決済み】Bash スクリプトと /bin/bash^M: bad interpreter: そのようなファイルまたはディレクトリがない [重複] [重複

2022-01-11 08:59:50

質問

最近はbashスクリプトを勉強して、自動化された作業をしています(笑)。 バッシュスクリプト ) ,以下のようなスクリプトがあります。 .../Documents/LOG :

#!/bin/bash
# My first script
echo "Hello World!"

を変更すると  read/write/execute permissions

chmod 755 my_script

を実行しようとすると ./my_script というエラーが表示されます。

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

助かるかもしれませんね。

which bash

/bin/bash

そして

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh

試しにカレントディレクトリを PATH しかし、それはうまくいきません...

解決方法は?

Windows環境でスクリプトを作成し、Unix環境に移植して実行する場合、この問題が発生するのを見たことがあります。

を実行してみてください。 dos2unix をスクリプト上で実行します。

http://dos2unix.sourceforge.net/

または、Unix 環境で次のようにスクリプトを書き換えてください。 vi を実行し、テストしてください。

Unixは改行コードが異なるため、Windowsで作成したファイルを読み込むことができません。そのため、^Mを不正な文字として見ています。

Windowsでファイルを書いてから移植する場合は、エディタがUNIX形式でファイルを作成するように設定されていることを確認してください。

notepad++の画面右下に、文書形式が表示されます。デフォルトでは、次のように表示されます。 Dos\Windows . 変更するには、次のようにします。

  • 設定->プリファレンス
  • 新規ドキュメント/デフォルトディレクトリタブ
  • unix形式を選択して閉じる
  • 新規ドキュメントを作成する