【发布时间】:2013-05-24 12:46:15
【问题描述】:
在以下脚本中(另存为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.sh 或bash script.sh 运行脚本,那么脚本会按预期运行。
有什么方法可以通过点击script.sh 来运行脚本吗?
还有一个问题,在sh 和bash 之间,我应该使用哪个?我在 OS X 10.8 上,我的默认 shell 当前设置为 bash,但我想知道以后要使用哪一个。
谢谢。
【问题讨论】:
-
您可以使用
./script.sh执行它。它将检查第一行以了解哪个二进制文件将执行它,在本例中为/bin/sh。 -
脚本很可能不在 $PATH 中的目录中。
-
执行时出现权限错误。然后尝试用
sudo运行它,它仍然没有工作,因为sudo本身被解释为一个命令。所以我更改了权限以便在没有sudo的情况下执行它,然后脚本就可以工作了。但是当我想在不指定任何命令的情况下执行某些文件时,是否必须更改权限?