サーバーを実行し、Git Bashがインストールされているtest.shスクリプトがあると仮定すると、ダブルクリックしてフォアグラウンドでGit Bashでtesh.shを実行し、サーバーの出力を表示できるWindowsショートカットを作成するにはどうすればよいですか?
Git bashは既に次のような内容のバッチファイルです。
C:\WINNT\system32\cmd.exe /c ""C:\Git\bin\sh.exe" --login -i"
シェルのコンテキストでシェルスクリプトを実行する(および実行したままにする)が必要な場合は、コマンドラインで指定します。秘Theは、スクリプトファイル名が解釈されるときに、sh/Git環境の同等のパスではなく、Windowsパスを使用することです。
つまり、GitシェルでD:\temp\test.sh
ファイルを実行し、実行したままにするには、次のバッチファイルを作成します。
C:\WINNT\system32\cmd.exe /c ""C:\Git\bin\sh.exe" --login -i -- D:\temp\test.sh"
一方、スクリプトを実行してシェルを元に戻すにしたい場合は、次のようにする必要があります。
~/.profile
を編集または作成します(vi ~/.profile
を試してください)~/test.sh
(必要に応じてパスを調整します)このように見える.profile
で:
echo Executing .profile
/bin/sh ~/test.sh
そして、test.sh
は次のようになります。
echo Hello, World!
このプロンプトが表示されます:
Welcome to Git (version 1.7.11-preview20120710)
Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.
Executing .profile
Hello, World!
ixe013@PARALINT01 ~
$
他の答えは機能しますが、questionに完全に答える短い解決策があります。
ダブルクリックしてGit Bashで
tesh.sh
を実行できるWindowsショートカットを作成する方法
answerは、次のコマンドをショートカットのTarget:
フィールドに追加します。
"C:\Git\bin\sh.exe" -l "D:\test.sh"
ここで、-l
は--login
の短縮形です。
このコマンドの機能をよりよく理解するには、公式のGNU Bashの呼び出し :に関するドキュメントを参照してください。
-l
(--login
):このシェルを、ログインによって直接呼び出されたかのように動作させます。シェルが対話型の場合、これはexec -l bash
を使用してログインシェルを開始することと同じです。シェルが対話型ではない場合、ログインシェルのスタートアップファイルが実行されます。exec bash -l
またはexec bash --login
は、現在のシェルをBashログインシェルに置き換えます。
次の点にも注意してください。
sh.exe
へのフルパスが必要か、PATH
環境変数にそれを持っている(他の人が既に指摘しているように)。-i
オプションを追加できます私の意見では最高のソリューション:
以下をせよ:
たとえば、デスクトップ上のmintty.exe
へのショートカットを作成します。 %installation dir%/Git/usr/bin/mintty.exe
の下にあります
ショートカットのプロパティを編集し、ターゲットを変更します(パスを保持します):
"C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
パラメーターの説明:
-h always
は、スクリプトの終了時にウィンドウを開いたままにするため、出力の読み取り中にウィンドウが消えることはありません(出力を読み取る必要がなく、ウィンドウを自動的に閉じる場合は削除します)。
-l
は、このシェルをログインによって直接呼び出されたかのように動作させます。
-e
は、パイプラインがゼロ以外のステータスを返すとすぐに終了します( 詳細 )。
cmd
への絶対パスではなく、環境変数_%ComSpec%
_を使用することをお勧めします。
_%ComSpec% /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
_
または、単にcmd
コマンドでも、通常は%PATH%から入手できます。
_cmd /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login -i"
_
C:\Program Files (x86)\Git\bin
をPATH
に追加した場合(これも一般的な解決策であり、TortoiseGitインストールの場合の1つです)、次のように使用できます。
_cmd /c "sh --login -i"
_