gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:28:22 24 4
gpt4 key购买 nike

我想编写一个在 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。这样容易吗?

最佳答案

我使用的一个技巧是将您的 sh 脚本命名为 git-xxx .
(用一个合理的名称替换 xxx)。用 #!/bin/sh 开始你的脚本.

这样,您就可以启动“git xxx” ' ( git space xxx ) 来自 git-bash 或 CMD session :它每次都会使用 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 - 如何运行可以确定 cmd.exe 或 gnu mingw shell 是否正在运行的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com