web-dev-qa-db-ja.com

現在のフォルダでMSYSを起動します

WindowsにMinGW/MSYSがあり、作業中のフォルダーでMSYSShellを起動する方法がわかりません。

たとえば、Windowsコンソールではフォルダc:\tempで作業しており、MSYS(msys.bat)を呼び出すと、ホームフォルダを表す新しいコンソールウィンドウが固定された場所に開きます。

このmsys.batファイルを変更して、MSYS Shellが現在の作業フォルダーで開く(または開始後に変更する)にはどうすればよいですか?

9
zetah

使用しているmsysgitのバージョンはわかりませんが、msys.batを呼び出しても現在のディレクトリは変更されません。ディレクトリが変更されているのを確認した場合は、msysgitディレクトリのetc/profileファイルでcdコマンドを確認してください。ログインシェルの起動時にこのファイルが実行されるため、常にホームディレクトリに移動する可能性があります。

6
sschuberth

他の人が指摘しているように、msys.batはcd "$HOME"からetc/profileを発行します。 HOME環境変数を.に設定すると、正しい作業ディレクトリを持つmingwシェルが得られます。

set HOME=.
C:\MinGW\msys\1.0\msys.bat
4
Marcel Greter

Bashファイルを作成し、引数をmsys2_Shell.cmdに渡して、任意の場所から開始できます。

msys2_Shell.cmd -where "home/name/esp"

1
Brandan

作業中のフォルダで実行する場合で、そのフォルダで定期的に作業している場合は、ホームディレクトリの.bash_profileの末尾に行を追加できます。

cd /c/temp

このコマンドは、ターミナルにログインするたびに実行されます。実行したいコマンドが複数ある場合は、複雑なファイルを入手してソースを作成できます。

. ~/etc/start_script . ~/etc/start_script2

これは、すでに.bashrcを構成している場合や、代替のHOMEパスを実際に使用したくない場合に特に便利です。

0
Brian Thomas

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シェルを起動します。

0
sebres