我想编写一个在Windows 7平台上运行一些git命令的脚本。
用户安装了git工具或至少MINGW - Windows的极简主义GNU。
问题是某些用户从MINGW32 shell运行,而其他用户则从cmd.exe运行。
使用MINGW32 shell的示例shell:
$ echo $SHELL
/bin/sh
使用cmd.exe的示例shell
>echo %COMSPEC%
C:\Windows\system32\cmd.exe
有什么方法可以从我的初始脚本中确定shell,然后可能运行Windows批处理文件或其他unix脚本?
或者另一个想法是假设用户将使用git bash并且只检查$ SHELL是/ bin / sh。那更容易吗?
答案 0 :(得分:2)
我使用的一个技巧是命名你的sh脚本git-xxx
(用合理的名称替换xxx)。使用#!/bin/sh
启动您的脚本。
这样,您就可以启动' git xxx
'来自git-bash或CMD会话的(git
space xxx
):每次都会使用MINGW shell。
确保git-xxx
中有%PATH%
(无扩展名)
您PATH
还应包含<path/to/git/bin>
和<path/to/git/usr/bin>
。
例如:
C:\prgs\git\PortableGit-2.7.0-64-bit\bin;C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin;
最后一个路径有超过200个为Windows编译的unix命令。