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/[置換前]/[置換後]で定義する