如何 运行 一个可以确定 cmd.exe 或 gnu mingw shell 是否为 运行ning 的脚本
How to run a script which can determine whether cmd.exe or gnu mingw shell is running
我想在 Windows 7 平台上编写 运行 一些 git 命令的脚本。
用户安装了 git 工具,或者至少安装了 MINGW - Windows 的极简 GNU。
麻烦的是一些用户 运行 来自 MINGW32 shell 而其他用户来自 cmd.exe.
示例 shell 使用 MINGW32 shell:
$ echo $SHELL
/bin/sh
示例 shell 使用 cmd.exe
>echo %COMSPEC%
C:\Windows\system32\cmd.exe
有什么方法可以从我的初始脚本中确定 shell 然后可能 运行 一个 windows 批处理文件或其他 unix 脚本?
或者另一个想法是假设用户将使用 git bash 并检查 $SHELL 是 /bin/sh。这样容易吗?
我使用的一个技巧是将您的 sh 脚本命名为 git-xxx
.
(用一个合理的名称替换 xxx)。用 #!/bin/sh
.
开始你的脚本
这样,您可以从 git-bash 或 CMD 会话:每次都会使用 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 命令。
我想在 Windows 7 平台上编写 运行 一些 git 命令的脚本。
用户安装了 git 工具,或者至少安装了 MINGW - Windows 的极简 GNU。
麻烦的是一些用户 运行 来自 MINGW32 shell 而其他用户来自 cmd.exe.
示例 shell 使用 MINGW32 shell:
$ echo $SHELL
/bin/sh
示例 shell 使用 cmd.exe
>echo %COMSPEC%
C:\Windows\system32\cmd.exe
有什么方法可以从我的初始脚本中确定 shell 然后可能 运行 一个 windows 批处理文件或其他 unix 脚本?
或者另一个想法是假设用户将使用 git bash 并检查 $SHELL 是 /bin/sh。这样容易吗?
我使用的一个技巧是将您的 sh 脚本命名为 git-xxx
.
(用一个合理的名称替换 xxx)。用 #!/bin/sh
.
这样,您可以从 git-bash 或 CMD 会话:每次都会使用 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 命令。