OSX Snow Leopardを使用しています。
grr.sh
の全内容は次のとおりです。
#!/bin/sh
echo wow
端末から実行しようとすると:
$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
wow
$ sh grr.sh
wow
$ bash grr.sh
wow
はい。けっこうだ。実行権限を与えてから、もう一度やり直します。
$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found
うーん。おそらくbashを明示的に使用すればうまくいくでしょうか?ファイルの内容を次のように変更します。
#!/bin/bash
echo wow
そして、まったく同じ結果が得られます。何が壊れたのか!?
最後に一つだけ!気になる場合は...
$ which sh
/bin/sh
何もない。直接実行できるのは、$PATH
のディレクトリの1つにある実行可能ファイルのみであり、.
は(通常)$PATH
に存在しません。実行可能ファイルへのパス、つまり./grr.sh
を指定します。
Grr.shの場所は$PATH
変数にありますか?そうでない場合は、次のように入力する必要があります。
./grr.sh
grr.shと同じフォルダにいる場合。そうでない場合は、完全なパスを指定してください。
ファイルの権限が間違っています。次のコマンドを試してください。
$ chmod 777 file.sh
$ ./file.sh
ええ、そして./grr.shの意味は、このディレクトリでコマンドgrr.shを実行することです。シングル。は作業ディレクトリ内を意味します。そうでない場合、シェルは$ PATHでコマンドを実行しようとしていると想定します。