この記事は現役ウェブディベロッパーがわかりやすさにこだわって作成しました
ローカルPCがWINDOWSの場合、LINUXサーバーにスクリプトを転送するとよくこの現象が発生します。viでファイルフォーマットを変換する機能がわかるまでは正規表現で改行コードを一括置換していました。知っておくと便利です!
現象
LINUXでスクリプトを実行すると ‘^M: bad interpreter’エラーが表示されて動作しない
環境
Linux
原因
スクリプトのファイルフォーマットがDOS になっている
対策
以下の手順で対象のファイルフォーマットをDOSからLINUXに変換します。
※ここでは対象スクリプトをtarget.shにしています。
- ファイル編集を可能にするためパーミッションを変更します
chmod a+x target .sh - 次に、viエディタで対象スクリプトを編集します
vi target .sh
:set fileformat
:set fileformat=unix
:wq
以上です。
この記事についてのご質問またはお困りのことがございましたら、お気軽にお問い合わせください。