如何运行脚本来确定cmd.exe或gnu mingw shell是否在运行

我想写一个脚本,在Windows 7平台上运行一些git命令。

用户安装了git工具,或者至less是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,然后可能运行一个Windowsbatch file或其他的Unix脚本?

或者另一个想法是假设用户将使用git bash,只需检查$ SHELL是/ bin / sh。 这更容易吗?

我使用的一个技巧是命名你的sh脚本git-xxx
(用一个明智的名称替换xxx)。 用#!/bin/sh启动你的脚本。

这样,你可以从git-bash或者CMD会话中启动' git xxx '( 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命令。