[英]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.