【BASH】LINUXでスクリプトを実行すると ‘^M: bad interpreter’エラーが出る場合の対処方法

こちらのサイトではDRUPAL10に関連する記事を掲載しています。

ローカルPCがWINDOWSの場合、LINUXサーバーにスクリプトを転送するとよくこの現象が発生します。viでファイルフォーマットを変換する機能がわかるまでは正規表現で改行コードを一括置換していました。知っておくと便利です!

現象

LINUXでスクリプトを実行すると ‘^M: bad interpreter’エラーが表示されて動作しない

環境

Linux

原因

スクリプトのファイルフォーマットがDOS になっている

対策

以下の手順で対象のファイルフォーマットをDOSからLINUXに変換します。
※ここでは対象スクリプトをtarget.shにしています。

  1. ファイル編集を可能にするためパーミッションを変更します
    chmod a+x target .sh
  2. 次に、viエディタで対象スクリプトを編集します
    vi target .sh
    :set fileformat
    :set fileformat=unix
    :wq

以上です。

このサイトに関するご意見・ご質問はこちらまで

この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。

タイトルとURLをコピーしました