私は見たことがあります this しかし、それは私にとってはうまくいきません。私はGitのバージョンのbashを使用していませんが、cygwinに付属しているバージョンを使用しているので、それが問題の一部である可能性があります。 Console2のタブを設定する方法は次のとおりです。
Title: bash.exe
Shell: C:\cygwin\bin\bash.exe --login -i
Startup dir: %HOMEDRIVE%%HOMEPATH%
これは私のレジストリエントリです:
Directory
Shell
Console2
Open Console2 Here
command
"C:\Console2\Console.exe" -d "%1"
bashは、クリックしているディレクトリではなく、常にホームディレクトリで開始されます。その後、cd /cygdrive/d/code
...など。「Startupdir」フィールドの値を削除して、%1、%1%に変更してみましたが、うまくいきませんでした。
私も試しました この解決策 しかしそれは私にとってもうまくいきませんでした:
Title: bash.exe
Shell: C:\cygwin\bin\bash.exe -l
レジストリ:
Directory
Shell
Console2
Open Console2 Here
command
"C:\Console2\Console.exe" -d "%V"
上記の解決策は、Gitに含まれているbash.exeとsh.exeのバージョンでは機能しますが、何らかの理由でcygwinに含まれているバージョンでは機能しません。まだこの理由を探しています。
以下の回答を選択しましたが、適切なフォルダーに.profileファイルを作成していれば、上記の2番目の解決策は機能したと思います。 cygwinが使用するホームディレクトリではなく、通常のホームディレクトリに作成しようとし続けたため、スクリプトが実行されませんでした。これにより、.profileファイルは不要であると私は信じました。私が選択した答え(Hughに感謝)は、各スクリプト(.bash_profile、.bash_login、.profile、および.bashrc)がbashによってどのように使用されているかを明確に説明しており、間違った場所に配置していることがわかりました。
手動 から、
Bashが対話型ログインシェルとして、または--loginオプションを指定して非対話型シェルとして呼び出されると、最初にファイル/ etc/profile(ファイルが存在する場合)からコマンドを読み取って実行します。
/etc/profile
には、デフォルトで次のコードが含まれています。
# Make sure we start in home unless invoked by CHERE
if [ ! -z "${CHERE_INVOKING}" ]; then
unset CHERE_INVOKING
else
cd "${HOME}" || echo "WARNING: Failed attempt to cd into ${HOME}!"
fi
したがって、1つの解決策は、bashを開始する前に環境変数CHERE_INVOKING
を設定するWindowsバッチファイルを作成することです。それはあまりきれいではありません。
次、
そのファイルを読み取った後、〜/ .bash_profile、〜/ .bash_login、および〜/ .profileをこの順序で検索し、最初に存在して読み取り可能なコマンドからコマンドを読み取って実行します。
これらのプロファイルスクリプトは、デフォルトで~/.bashrc
スクリプトが存在する場合はそれを実行します。 cd -
の最後に.bashrc
を置くと、(最新のConsole2とCygwin bashを使用して)うまくいきます。
echo 'cd -' >> ~/.bashrc
ところで、引数なしでConsole2(Console.exe
)を呼び出します-Windowsエクスプローラーは、右クリックしたディレクトリで起動することを確認します。 XPを使用していますが、MSが新しいバージョンのWindowsでこの動作を変更することはないと思います。また、Bashタブの「startupdir」オプションを空白のままにします。