1
在下面的脚本(保存为script.sh
):为什么sh shbang不起作用?
#!/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'。 – fedorqui
很可能该脚本不在$ PATH中的目录中。 – cdarke
当我执行它时,我收到了一个权限错误。然后尝试用'sudo'运行它,但它仍然不起作用,因为'sudo'本身被解释为一个命令。所以我改变了权限为了执行它没有'sudo',然后脚本工作。但我不得不改变权限时,我想执行一些文件没有指定任何命令? – Blaszard