WindowsにMinGW/MSYSがあり、作業中のフォルダーでMSYSShellを起動する方法がわかりません。
たとえば、Windowsコンソールではフォルダc:\temp
で作業しており、MSYS(msys.bat
)を呼び出すと、ホームフォルダを表す新しいコンソールウィンドウが固定された場所に開きます。
このmsys.bat
ファイルを変更して、MSYS Shellが現在の作業フォルダーで開く(または開始後に変更する)にはどうすればよいですか?
使用しているmsysgitのバージョンはわかりませんが、msys.bat
を呼び出しても現在のディレクトリは変更されません。ディレクトリが変更されているのを確認した場合は、msysgitディレクトリのetc/profile
ファイルでcd
コマンドを確認してください。ログインシェルの起動時にこのファイルが実行されるため、常にホームディレクトリに移動する可能性があります。
他の人が指摘しているように、msys.batはcd "$HOME"
からetc/profile
を発行します。 HOME環境変数を.
に設定すると、正しい作業ディレクトリを持つmingwシェルが得られます。
set HOME=.
C:\MinGW\msys\1.0\msys.bat
Bashファイルを作成し、引数をmsys2_Shell.cmdに渡して、任意の場所から開始できます。
msys2_Shell.cmd -where "home/name/esp"
作業中のフォルダで実行する場合で、そのフォルダで定期的に作業している場合は、ホームディレクトリの.bash_profile
の末尾に行を追加できます。
cd /c/temp
このコマンドは、ターミナルにログインするたびに実行されます。実行したいコマンドが複数ある場合は、複雑なファイルを入手してソースを作成できます。
. ~/etc/start_script . ~/etc/start_script2
これは、すでに.bashrcを構成している場合や、代替のHOMEパスを実際に使用したくない場合に特に便利です。
etc/profile
の変更(最初の回答のようにcd "$HOME"
からのコメント)が何らかの理由で望ましくない場合、これは次の仕事をする可能性があります。
# in mingw:
%SystemDrive%\mingw\msys\1.0\bin\sh.exe --login -i -c "cd '%TEMP%'; $Shell"
# msys in root:
%SystemDrive%\msys\bin\sh.exe --login -i -c "cd '%TEMP%'; $Shell"
この例では、/tmp
ディレクトリでmsysシェルを起動します。