改行コードが原因で、シェルスクリプトの謎なエラーに悩まされました。
Linuxの改行コードは LF ですが、これが Windows と同じ CR+LF になっていると、シェルスクリプトの実行で下記のようなエラーが出ます。
's: オプションが違います -- ' 詳しくは `ls --help' を実行して下さい.
: そのようなファイルやディレクトリはありません
: コマンドが見つかりません
Windows上で作成したファイルを、ここ で紹介した WinSCP で Linux へコピーして使用する場合、拡張子無しのファイルは改行コードが CR+LF のままになります。
問題回避の為には、改行コードを Linux の LF にする必要があります。
以下で変換します。
tr -d \\r < 変換前ファイル名 > 変換後ファイル名
これでシェルスクリプトとして実行してもエラーは出なくなります。
コメント