晴耕雨読

working in the fields on fine days and reading books on rainy days

シェルスクリプト実行で「無効なオプション」でエラー終了する時の対処法

Windowsでシェルスクリプトを作成し、改行コードがCR/LFのままLinuxにアップロードしてから、シェルスクリプトを実行すると「無効なオプション」もしくは「invalid option」がエラーで表示されます。

$ main.sh
: 無効なオプション

原因は改行コードがCR/LFになっているためです。 bashが実行するファイルは、改行コードが間違っていると、1行目のshebangの読み込み時に失敗するようです。 LFに変更すると想定通り動くようになります。

以上です。