^Mのせいでシェルスクリプトが動かない!
Linuxの話。
Windowsで作成したシェルスクリプトをLinuxで実行した。
問題ないと思っていたのだけど、
#!/bin/sh^Mが見つからないとエラーが出る。
^Mってなんだ!?
心当たりはあったのだけど、調べてみると、
やはり^Mは改行コードみたい。
Windowsの改行コードはCRLFなのに対して、Linuxの改行コードはLFなので、
CRの部分がこうなっちゃってるみたい。
これじゃ動かないので、viエディタで置換することにしたのだけど・・・・。
viエディタを開いても、^Mなんて出てこない。
:%s/^M// <<| で置換しようとしたけども、該当する文字列は存在しないと。 どうやら、<span style="color: #ff0000">viを開く時に-bオプションをつければよい</span>らしい。 -bオプションを付けた後、上記の置換操作を行うことで解決できた。