4

我在 python 中编写了一个提交后脚本,“c:\myfolder\myscript.py”。我想从提交后脚本中调用它。这没有找到:

#!/bin/sh
c:\myfolder\myscript.py

bash 认为命令 c:myfoldermyscript.py - 斜线被删除。

所以,我尝试了正斜杠:

#!/bin/sh
c:/myfolder/myscript.py

但是似乎 bash 认为我的 .py 文件本身就是一个 bash 脚本,所以我得到了 bash 错误,因为它错误地试图解释它。

4

2 回答 2

6

脚本的第一行称为Shebang,唯一的问题是:

Shebangs 指定系统可执行文件的绝对路径;这可能会导致具有非标准文件系统布局的系统出现问题。
即使系统具有相当标准的路径,同一操作系统的变体也很可能具有所需解释器的不同位置。

唯一的另一种方法是直接在脚本中调用 python

 #!/bin/sh
 C:/apps/Python25/python c:/myfolder/myscript.py

无论哪种方式,正斜杠都是有序的:这是一个 bash 会话,用于执行 Git 及其钩子。
直接调用 python 解释器的好处是用环境变量替换它:

 #!/bin/sh
 $PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py
于 2009-10-10T06:49:29.153 回答
5

添加以下内容,即我的 python 解释器的路径,因为我的 python 脚本的第一行有效:

#!C:/apps/Python25/python

有没有更好的方法?

于 2009-10-10T04:03:14.973 回答