为什么sh shebang不起作用?

时间:2013-05-29 09:56:42

标签: bash sh shebang

在以下脚本中(另存为script.sh):

#!/bin/sh
cd $MY_PYTHON_WORKING_DIRECTORY
python script1.py
python script2.py

然后,当我尝试在我的bash shell中运行命令script.sh时,我收到错误bash: script.sh: command not found。为什么这不能按预期工作?如果任何脚本的第一行以#!前缀开头,那么该行上的以下路径将被解释为命令,对吧?为了您的信息,即使我将第一行更改为#!/bin/bash,仍会出现相同的错误。如果我将脚本作为sh script.shbash script.sh运行,则脚本会按预期运行。

是否可以通过点击script.sh来运行脚本?

我应该使用shbash之间的另一个问题?我在OS X 10.8上,我的默认shell目前设置为bash,但我想知道将来使用哪一个。

感谢。

1 个答案:

答案 0 :(得分:3)

首先,使脚本可执行:

chmod u+x script.sh

其次,您当前的目录不在$ PATH中。因此,您必须使用路径运行脚本(相对足够):

./script.sh