プロが教えるわが家の防犯対策術!

RedHat9ではよく以下のような胃の痛いような
エラーがでます。
rootでシェルが実行できないのですが、
どうすれば実行できるでしょうか?

■1.shというシェルファイル
#!/bin/sh
/bin/touch 1

■1.shを実行するとエラーになります。。
# ./1.sh
: bad interpreter: そのようなファイルやディレクトリはありません

■cronでも動きません。。
/bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory

A 回答 (3件)

/bin/shはありますか?



シェルスクリプトの最初の行(#!で始まる行)は、インタープリタの指定を意味しています。
つまり、#!/bin/shと書けば、「このファイルは/bin/shをインタープリタとする」ということです。

なので、
"/bin/bash: 1.sh: /bin/sh: bad interpreter: No such file or directory"
このエラーは、「/bin/bashが1.shを実行しようとしたが、/bin/shが無い」ということを意味しています(多分)。

RedHat9では、/bin/shは/bin/bashへのリンクなので、もし無ければ
ln -s /bin/bash /bin/sh
とすると良いでしょう。
    • good
    • 7
この回答へのお礼

みなさまのおかげで
残るはそこかなと思いやってみたところ、解決しました!!ありがとうございます。
結局、SAMBAで作成したファイルの文字コードがSJIS
だったのがいけないようです。vi でファイルを作り直した所、正常に動作しました。

お礼日時:2006/02/01 13:38

$ touch 1



と実行することで、「1」というファイルがなければ、新規作成されます。

/bin/touch 1

touchコマンドは、/bin 配下にありますか? /usr/bin 配下にあるとか?

# ./1.sh

1.shファイルに実行権はありますか?
    • good
    • 0
この回答へのお礼

はい。全てあります。

難攻不落な問題です。。
さくらインターネットでもRedHat9が入っていて
以前、同じような問題があり解決できませんでした。。touchコマンドに限らずどのコマンドでも
同じ挙動です。。

お礼日時:2006/02/01 13:31

1.sh の中の



/bin/touch 1

↑ の "1" というファイルに対してtouchしてるようですが、カレントディレクトリに "1" というファイルが存在しないのではないでしょうか?


% /bin/touch 1

で実行できますか?
    • good
    • 0
この回答へのお礼

はい、1というファイルは存在しますし、
コマンドラインで実行もできます。

一応サーバー暦は実質2年ぐらいあるのですが、
本当、RedHat9だけこういう現象があって泣かされます。。あきらめてOS入れなおしでCentOSにしようかなぁ。。

お礼日時:2006/02/01 13:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!