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

この記事は現役ウェブディベロッパーがわかりやすさにこだわって作成しました

ローカル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

以上です。

PHP/Javascript/WORDPRESS案件全般承ります

この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。

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