このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

MinGW/MSYSのbashを使うときの注意点

コンピュータのセットアップってほんとにめんどくさいなー。ハーッ(ため息)。

僕の場合まずは、MinGW/MSYS。インストールの仕方は次に書いておいた(記録は役に立つなー)。

インストールが終えたら、パス環境変数を直す。僕の場合は:

  • 新しいパス = %既存のパス%;C:\Installed\MinGW\bin;C:\Installed\msys\1.0\bin

Windows 7 ではコントロールパネルに検索フィールドが付いたので、そこで「環境変数」と検索できる。ここは便利にはなったけど、そもそも頻繁に環境変数を書き換える僕にとっては、あの設定インターフェースは最低。

「MinGW/MSYSをインストールした(何度目かな?)」には書いてないのだけど、注意しなくちゃならないことがあるので今回はそれも書いておきます(自分でもハマるから)。

bashが初期化に使うファイルってのが色々あって、憶えられないのだけど、次の記事に書いてあります。

それによると、ログイン時は次の順で初期化スクリプトが実行される、と。

  1. /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

ログインシェルであるかどうかに関わらず ~/.bashrc は実行され、ログアウト時には ~/.bash_logout 。

でも、MSYSのbashはそうなってません。(ここらへんはあんまりキッチリ決まってないのか?)

C:\tmp>bash --login
This is /etc/profile
This is ~/.bash_profile

hiyama@TP-X200-HIYAMA ~
$ exit
logout
This is ~/.bash_logout

C:\tmp>
C:\tmp>bash
This is ~/.bashrc
bash-3.1$ exit
exit

C:\tmp>

~/.bash_login と ~/.profile は作っても実行されません。(←ウソ、追記参照。)それと、ログインシェルでは ~/.bashrc が実行されません。

次の1行を、/etc/profile か ~/.bash_profile に書いておく必要があります。

[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

~/.bash_profile から ~/.bashrc を読み込むようにしておくなら:

C:\tmp>bash --login
This is /etc/profile
This is ~/.bash_profile
This is ~/.bashrc

hiyama@TP-X200-HIYAMA ~
$ exit
logout
This is ~/.bash_logout

C:\tmp>

実際には、僕はファイルが増えるのがイヤなんで、/etc/profile からsourceしてます。

[追記]~/.bash_profile がなければ、~/.bash_login が実行され、それもないと、~/.profile が実行されるようです。[/追記]