Windows 如何运行可以确定cmd.exe或gnu mingw shell是否正在运行的脚本

Windows 如何运行可以确定cmd.exe或gnu mingw shell是否正在运行的脚本,windows,git,shell,cmd,mingw,Windows,Git,Shell,Cmd,Mingw,我想写一个脚本,在Windows7平台上运行一些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,然后

我想写一个脚本,在Windows7平台上运行一些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 is/bin/sh。这更简单吗?

我使用的一个技巧是将您的sh脚本命名为git xxx
(用合理的名称替换xxx)。用
#启动脚本/bin/sh

这样,您就可以从gitbash或CMD会话启动“
gitxxx
”(
git
space
xxx
):它每次都会使用MINGW shell

确保
git xxx
(无扩展名)位于您的
%PATH%

而且您的
路径
还应该包括
。 例如:

C:\prgs\git\PortableGit-2.7.0-64-bit\bin;C:\prgs\git\PortableGit-2.7.0-64-bit\usr\bin;

最后一条路径为Windows编译了200多个unix命令。

我尝试使用名为git-abc.sh的脚本和#/bin/sh topline和一些git命令,但是如果我从cmd.exe运行,我会得到:致命的:哦。您的系统报告根本没有Git命令。@AngusComber not
Git xxx.sh
<代码>git xxx(无扩展名)。您可以通过键入与以下内容相关的
git xxx
git
space
xxx
)来调用该脚本: