Windowsでシェルスクリプトを作成し、改行コードがCR/LFのままLinuxにアップロードしてから、シェルスクリプトを実行すると「無効なオプション」もしくは「invalid option」がエラーで表示されます。
$ main.sh
: 無効なオプション
原因は改行コードがCR/LFになっているためです。 bashが実行するファイルは、改行コードが間違っていると、1行目のshebangの読み込み時に失敗するようです。 LFに変更すると想定通り動くようになります。
以上です。
Windowsでシェルスクリプトを作成し、改行コードがCR/LFのままLinuxにアップロードしてから、シェルスクリプトを実行すると「無効なオプション」もしくは「invalid option」がエラーで表示されます。
$ main.sh
: 無効なオプション
原因は改行コードがCR/LFになっているためです。 bashが実行するファイルは、改行コードが間違っていると、1行目のshebangの読み込み時に失敗するようです。 LFに変更すると想定通り動くようになります。
以上です。