[質問]
作成したスクリプトが Command Not Found で動作しません
[対象となる製品のバージョン]
MIRACLE LINUX 全般
[対象となるパッケージ]
bash perl 等のスクリプト言語
[回答]
スクリプトを Windows 等の環境で作成した場合、そのスクリプトをそのまま Linux
システムで動作させようとしても動作しません。 これは、Linux では改行コードが CR(0x0A) のみとなっているのに対し、DOS や Windows
での改行コードが、LF(0x0D), CR(0x0A) から成っているためです。 そのような環境で作成したスクリプトを、Linux
システムで動作させるためには、この余分なコードを削除してやる必要があります。
以下はサンプルスクリプト(sample.sh)から余分なコードを削除する方法です。
$ nkf -d < sample.sh > sample.sh.tmp
$ chmod +x sample.sh.tmp
$ ./sample.sh.tmp
sample.sh.tmp が正常に実行できることを確認できたら、
$ mv sample.sh.tmp sample.sh
|
これにより余分な LF コードを削除することができます。
また、テンポラリファイルを生成しない方法として、以下のコマンドを実行することでも LF を削除することが可能です。
$ perl -pi -e 's/\015$//' sample.sh
|
[更新履歴]
2003/10/20 新規作成
|