web-dev-qa-db-ja.com

Cygwin:mintty / bashでスクリプトを実行する

最初はSO.comで質問されましたが、閉じました。 SU.comに適していると思います。それも適切な場所ではないかどうか教えてください。

コンテキストメニューを.shファイルに追加して、cygwinで実行したいと思います。

デフォルトの「ここでCygwinを開く」コマンドを操作しようとしました。

C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "%L"

残念ながら、私が得るのは、すぐに再び閉じるウィンドウだけです。
また、xhereの引数の目的と意味は100%わかりません。

これは機能しています:

C:\cygwin\bin\bash.exe %1

しかし、私はターミナルウィンドウとしてミンティを持ちたいです。

最後の質問:
「ここでCygwinを開く」文字列に実行するコマンド文字列を追加する方法はありますか?

2
Nippey

やる気を維持してくれた@vaz_azに感謝します。

Cygwinの問題は、POSIXスタイルのパスが必要なことです。

これは、Windowsによって提供されるファイルパラメータ%1を変換する必要があることを意味します。これは、cygpathツールを使用して実行できます。次のコードは、regeditでコマンドとして使用できる1ライナーを示しています。

C:\cygwin\bin\mintty.exe -e /bin/bash -l -c '$(/bin/cygpath "%1")'

次の行には、1ライナーで実行できるいくつかの例があります。

#Simple
C:\cygwin\bin\mintty.exe -e bash -l -c '$(cygpath "%1")'

#Fire and Forget (With 1 second delay at the end to read any messages)
C:\cygwin\bin\mintty.exe -e bash -l -c '$(cygpath "%1"); echo DONE; sleep 1'

#With logging to static file
C:\cygwin\bin\mintty.exe -l C:\cygwin\home\Nippey\cygwin.log -e /bin/bash -l -c '$(cygpath "%1")'

#With interactive Shell after execution (Unfortunately the -i parameter of bash does not work together with -c, so you have to start a sub-Shell)
C:\cygwin\bin\mintty.exe -e /bin/bash -l -c '$(cygpath "%1"); bash'
2
Nippey

次のコマンドを試してみてください:C:\cygwin\bin\mintty.exe -e /bin/bash -l -c '%1'

0
Arnaud