shファイルの実行でエラーが出る

shファイルが実行できない!

MacベースのDockerなら動いたのにWindowsベースのDockerでは動かない…

そんなshファイル(シェルファイル)のお話。

shファイルを実行すると…

以下のようなエラーが出て、実行できない。

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

あれ?なんで?
Macの時はうまく動いたのに…

原因

改行コードの問題らしい。

.gitconfigではautoCRLF = falseにしてるんだけどな、おかしいな…

とりあえず、当該shファイルの改行コードを修正。

$ cd [shファイルの格納ディレクトリ]
$ sed -i 's/\r//' [当該shファイル名].sh

sedコマンドについて

sedコマンドは、テキスト処理コマンド。
置換や削除、抽出などを行うことが出来る。

上記のコマンドの場合、

-i
結果を標準出力しないで置き換える
‘s/\r//’
置き換え定義。s/[置換前]/[置換後]で定義する

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください