schedule2022-01-26

シェルスクリプトの実行で$'\r' command not found が出る場合

シェルスクリプトを実行した際に$'\r': command not found が出た。

これは Windows の改行コードが原因であり、スクリプトを Linux/unix の改行コードに変換する必要がある。

dos2unix

https://docs.oracle.com/cd/E19253-01/819-1210/6n3j74jn0/index.html

改行コードを変換するツール dos2unix で変更する。

$ dos2unix <対象のファイル>

インストール方法

# redhat系
$ yum install dos2unix

# Debian系
$ apt-get install dos2unix

# Mac
$ brew install dos2unix

他に試したこと

sed での変換はうまくいかず、実行結果は変わらなかった。

$ sed "s/^M//g" <変換前のファイル> <変換後のファイル>