Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让我的git(windows上的msysgit)post-commit脚本以python而不是bash的形式调用我的python脚本?_Git_Bash_Msysgit - Fatal编程技术网

如何让我的git(windows上的msysgit)post-commit脚本以python而不是bash的形式调用我的python脚本?

如何让我的git(windows上的msysgit)post-commit脚本以python而不是bash的形式调用我的python脚本?,git,bash,msysgit,Git,Bash,Msysgit,我用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错误。在我的pytho

我用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错误。

在我的python脚本的第一行工作时,添加了以下python解释器的路径:

#!C:/apps/Python25/python #!C:/apps/Python25/python
有更好的方法吗?

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

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

唯一的其他方法是在脚本中直接调用python

 #!/bin/sh
 C:/apps/Python25/python c:/myfolder/myscript.py
无论哪种方式,前斜杠都是有序的:这是一个bash会话,用于执行Git及其挂钩。
直接调用python解释器的目的是用环境变量替换它:

 #!/bin/sh
 $PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py

你写的很有道理。因此,文件扩展名“py”的Windows机制与可执行文件“python.exe”相关联,因此“执行”py文件调用python.exe,该机制不能从Windows bash会话连接,对吗?对,Windows文件关联在bash会话中不起作用。但是如果PATH环境变量中有“
C:/apps/Python25
”,那么单独使用“
python
”(或“
python.exe
”)实际上可以工作。@VonC-查看您的用户配置文件,我想知道您是否介意看看我的这个问题并加上您的2美分,如果你的想法与已有的不同:@Corey:我会的,今天晚些时候(或明天早些时候)。@Corey:。。。完成了。不过,这不是一个完整的答案。这是因为Shebang指定了脚本文件解释器的位置,在本例中是
Python
,而不是
Bash