Sh: Cygwinで「$'\r': command not found」と表示される

aCygwinを使っている時、「$'\r': command not found」というエラーメッセージが表示されることがあります。これは単純に解釈すると、「\rというコマンドはありません」という意味。

原因の多くは、Cygwinの改行コードとして「LF(Line Feed。「\r」と同じ。)」を設定しているのに、実行しているシェルスクリプトの改行コードは「CR+LF」としているから。解決方法として一番単純なのは、シェルスクリプトの改行コードを「LF」に変換することです。
(Cygwinの改行コードを変換したい場合は、Cygwinのインストールで用いたsetup.exeを使うのかな?)

改行コードを変換するにはいくつかの方法があります。
1.複数の改行コードに対応したテキストエディタで改行コードを変換して保存する。
2.nkfコマンドで変換する。

1は簡単にできるのでお勧めです。
2は、もしcygwinにnkfコマンドが入っていればという前提で「nkf -Lu ファイル名」とすればいいでしょう。

前へ

HTML:ブロックレベル要素をセンタリング

次へ

XBRL APIのセットアップ