簡體   English   中英

如何運行可確定cmd.exe或gnu mingw shell是否正在運行的腳本

[英]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運行。

使用MINGW32 shell的示例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會話啟動' 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命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM