- ベストアンサー
bad interpreterで、シェルが使えません(T_T)
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
- みんなの回答 (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 とすると良いでしょう。
その他の回答 (2)
- FoggyMountain
- ベストアンサー率21% (79/372)
$ touch 1 と実行することで、「1」というファイルがなければ、新規作成されます。 /bin/touch 1 touchコマンドは、/bin 配下にありますか? /usr/bin 配下にあるとか? # ./1.sh 1.shファイルに実行権はありますか?
お礼
はい。全てあります。 難攻不落な問題です。。 さくらインターネットでもRedHat9が入っていて 以前、同じような問題があり解決できませんでした。。touchコマンドに限らずどのコマンドでも 同じ挙動です。。
- lahalito
- ベストアンサー率48% (31/64)
1.sh の中の /bin/touch 1 ↑ の "1" というファイルに対してtouchしてるようですが、カレントディレクトリに "1" というファイルが存在しないのではないでしょうか? % /bin/touch 1 で実行できますか?
お礼
はい、1というファイルは存在しますし、 コマンドラインで実行もできます。 一応サーバー暦は実質2年ぐらいあるのですが、 本当、RedHat9だけこういう現象があって泣かされます。。あきらめてOS入れなおしでCentOSにしようかなぁ。。
お礼
みなさまのおかげで 残るはそこかなと思いやってみたところ、解決しました!!ありがとうございます。 結局、SAMBAで作成したファイルの文字コードがSJIS だったのがいけないようです。vi でファイルを作り直した所、正常に動作しました。