Windowsで作成したシェルスクリプトで実行すると、「command not found」エラー

シェルスクリプトを実行すると「$’\r’: command not found」のエラー

シェルスクリプトを作るときはAtom等のエディタで作ってSCPでアップしていました。macOSからWindowsに変更しても同じような感覚で作成すると「$’\r’: command not foundエラーになりました

これは、改行コードがWindowsの改行コードになっていることが原因です。前はmacOSだったので改行コードがUnixの改行コードになっていたので意識しなくてもよかったのですが、WindowsだとWindowsの改行コードになります

ファイルの改行コードを確認

Windowsで改行コードを作成すると行末に「^M$」となりWindowsでの改行コードになります。UTF8だと改行コードは「$」となります

改行コードをUnix形式に変換する

改行コードが原因なのでテキスエディタで改行コードをWindowsからUTF8に変換して再アップロードすればOKですが、Linux側で改行コードをsedコマンドで変換しても大丈夫です

 

スポンサーリンク