代码之家  ›  专栏  ›  技术社区  ›  Corey Trager

如何让我的git(Windows上的msysgit)提交后脚本以python而不是bash的形式调用我的python脚本?

  •  4
  • Corey Trager  · 技术社区  · 15 年前

    我用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错误,因为它错误地试图解释它。

    2 回复  |  直到 15 年前
        1
  •  6
  •   VonC    15 年前

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

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

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

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

    不管怎样,前斜杠都是按顺序排列的:这是一个用于执行git及其挂钩的bash会话。
    直接调用python解释器的目的是将其替换为一个环境变量:

     #!/bin/sh
     $PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py
    
        2
  •  5
  •   Corey Trager    15 年前

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

    #!C:/apps/Python25/python
    

    有更好的方法吗?