<ファイル名>: line:○: $'\r': command not found
これはシェルのテキストにWindowsの「改行コード」が含まれているためである。
Windowsの改行コードを含めたつもりはなくとも、意識しないと自然体で入ってしまう。
改行コードは通常は見えないものであるが
Windowsの改行コードはCR+LF(\n+\r)、LinuxはLF(\n)のみである。
「CR」が余計であるために、エラーメッセージがでている。
「メモ帳」「ワードパッド」といったWindows付属のエディタで作成したのであれば、入ってしまう。
改行コードを制御するには「サクラエディタ」といった少し高度な(?)エディタを使用し、
ファイル保存時に改行コードをLFのみに指定することができる。
ここでは、Linuxサーバ上で改行コードから「CR」を取り除く方法を記述する。
なお、ファイルの改行コードは下記コマンドで確認できる。
file <ファイル名>
→ファイル情報を表示する子面戸であり、CRLFであれば「with CRLF line terminators」が表示される。
・sedコマンドを使用する。
余計な改行コード「\r」をブランクに置換する。
sed -i ‘s/\r//g’ <ファイル名>
・viを使用する。
viには改行コードの設定がカスタマイズできるため、viでファイルを開き改行コードを設定する。
:set ff=unix
※「:set ff」のみだと現在の改行コードが確認できる
※CRLFにするには「ff=dos」とする
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image
-
no image