LFとCRLFの違い

by 管理者
8月 08日 2010 年

久し振りに掲示板システムネタです。

テスト環境を作成するため、シェルを作ってシェルの中でmkdirコマンドを発行するとディレクトリ名称に?が付いて作成されてしまいます。

コンソールから”mkdir xxx”を打てば問題ないのですが、シェルを作って”mkdir xxx”を実行すると”XXX?”名称のディレクトリができてしまうのです。

WEBで調べてもどこにも書いてないし、それらしい記述が出てこなくて本当に困りました。

しかし、その解決策は以外なところにありました。

シェルはWindowsの端末で作ったものをFTPで送信して実行していたのですが、WindowsとLinuxの改行コードの扱いの違いで違う動作をしていたのです。

知っている人は知っているのでしょうが、知らない人はどつぼにはまります。

これが分かったのは、偶然Linuxのコンソールからls -lコマンドを打ったときにwindowsで作成したシェルとLinuxのコンソールから作成した全く同じシェルの大きさが違っていたことに気づいたからでした。

糸口さえつかめばしめたもの、理由はすぐに判明しました。

以下のコマンドを打って何とか解決しましたが、これを解決するのに数時間かかってしまいました。

tr -d “\r” </usr/aaa.sh >  ./bbb.sh

やれやれ

この記事へのトラックバックURL