我在使用 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
答案1
绝对不行。只有 中的一个目录中的可执行文件才$PATH
可以直接运行,并且.
(通常)永远不会在 中$PATH
。指定可执行文件的路径,即./grr.sh
。
答案2
grr.sh 的位置是否在$PATH
变量中?如果没有,则需要输入:
./grr.sh
如果您与 grr.sh 位于同一文件夹中。如果不是,请提供其完整路径。
答案3
该文件的权限错误。请尝试以下命令:
$ chmod 777 file.sh
$ ./file.sh
答案4
是的,./grr.sh 的意思是,在这个目录中运行 grr.sh 命令。单个 . 表示在工作目录中。否则,您的 shell 会假定您正在尝试运行 $PATH 中的命令。