• ベストアンサー

シェルスクリプトの作り方

OSはVineで、bashシェルです。 シェルスクリプトの作り方ですが、 1.ファイルを作る。 例えば、 #!bin/sh cd tmp このとき、ディレクトリはどこでもいいのでしょうか? 2.権限を付ける。 chmod u+x filename 3.実行 ./filename 他に気をつけることはないでしょうか? 実行すると、 bash: ./filename: bad interpreter: そのようなファイルやディレクトリはありません となってしまって、どうしても実行できません。

質問者が選んだベストアンサー

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.2

#!bin/sh → #!/bin/sh >このとき、ディレクトリはどこでもいいのでしょうか? だめです。 以下のようなシェルを動かすとわかります。 #!/bin/sh pwd cd tmp pwd

その他の回答 (3)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.4

スクリプトの1行目は、 #!bin/sh ではなく #!/bin/sh でしょう。ルートからの「絶対パス」にしないと実行出来ません。(質問者さんが遭遇しているエラーは、これが原因です) これは「このスクリプトは /bin/sh に実行させる」と言う意味です。 スクリプトをshではなくbashに実行させたいなら、1行目は #!/bin/bash になります。(bashがディフォルトのパスにインストールされている場合) 同じく、スクリプトをshではなくcshに実行させたいなら、1行目は #!/bin/csh になります。(cshがディフォルトのパスにインストールされている場合) 2行目以降は「1行目に書いたシェル」が認識できるコマンドやスクリプトを書きます。 1行目に #!/bin/sh と書いたなら sh が解釈可能な文を、 1行目に #!/bin/bash と書いたなら bash が解釈可能な文を、 1行目に #!/bin/csh と書いたなら csh が解釈可能な文を2行目以降に書かないといけません。

  • c80s3xxx
  • ベストアンサー率49% (1634/3294)
回答No.3

/sh ってあるんですか? Vine の標準がどうなってるか知りませんが, ふつうは /usr/bin/sh とかじゃないんですか? とりあえず,whereis sh で,sh がどこにいるか 確認してみたら?

  • hssh
  • ベストアンサー率24% (12/49)
回答No.1

> #!bin/sh シェルの指定を絶対パスにしましょう

noname#108554
質問者

補足

#!bin/bashにするということですか? それでもだめでした。

関連するQ&A