- ベストアンサー
シェルスクリプトの作り方
OSはVineで、bashシェルです。 シェルスクリプトの作り方ですが、 1.ファイルを作る。 例えば、 #!bin/sh cd tmp このとき、ディレクトリはどこでもいいのでしょうか? 2.権限を付ける。 chmod u+x filename 3.実行 ./filename 他に気をつけることはないでしょうか? 実行すると、 bash: ./filename: bad interpreter: そのようなファイルやディレクトリはありません となってしまって、どうしても実行できません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#!bin/sh → #!/bin/sh >このとき、ディレクトリはどこでもいいのでしょうか? だめです。 以下のようなシェルを動かすとわかります。 #!/bin/sh pwd cd tmp pwd
その他の回答 (3)
- chie65536
- ベストアンサー率41% (2512/6032)
スクリプトの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)
/sh ってあるんですか? Vine の標準がどうなってるか知りませんが, ふつうは /usr/bin/sh とかじゃないんですか? とりあえず,whereis sh で,sh がどこにいるか 確認してみたら?
- hssh
- ベストアンサー率24% (12/49)
> #!bin/sh シェルの指定を絶対パスにしましょう
補足
#!bin/bashにするということですか? それでもだめでした。