トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

技術的雑談-shellscriptでのbad interpreter

技術的雑談-shellscriptでのbad interpreter


 環境


OS:FreeBSD5.4、Fedora Core3、White Box Linuxなど

shell:bash

いや、多分Unix系のshellならどれでもだと多分思う。

 現象


Shell Scriptを起動すると

: bad interpreter: そのようなファイルやディレクトリはありません

と、出てきてShellが動かない。

場合によると、lessやcatで表示しても何も異常は無い。
もしくは、全ての行末に「\」が付いていたりする。

Windows上で編集していたりする。
samba経由でFileをUnixに送っている。
FTPクライアントで「テキスト/バイナリー」モードの設定を「オート」で送信していたりする。


 原因


Shell Script Fileの改行コードがWindowsのもの(CR+LF)になっている。
(UnixではLFだけ。)

そのため、bashがShell Scriptの最初の行の「#!/〜」の行を正しく判別できない。

 対処


エラーを起しているShell Script Fileの改行コードをUNIXのものに変換してやる。
nkfなどでも変換できるが、perlが使えるなら、

cp shellfile.sh shellfile.sh.org
perl -pe 's/\r\n/\n/' shellfile.sh.org > shellfile.sh
rm shellfile.sh.org

でも変換できる。

参照:改行コード変換

 履歴


2005/8/26 -- 初版

技術的雑談へ戻る

 突っ込み

name   comment  
URL (入力するとす ぱ むとみなします!)


技術的雑談へ戻る

TrackBack

TrackBack URL for this entry:
http://www.himajin2001.com/fswiki/tb.cgi/%B5%BB%BD%D1%C5%AA%BB%A8%C3%CC%2Dshellscript%A4%C7%A4%CEbad+interpreter

技術的雑談へ戻る

最終更新日時:最終更新時間:2005年08月26日 10時37分09秒
トップページに戻る