macのbashでもglobstarを使いたい

macのbashはバージョンが古いそうです。色んなものが古いよね、macって。 そんなわけで、新しい機能は使えなかったりします。

**/*.txtとかやるとカレントディレクトリ以下の.txtファイルを列挙してくれるglobstarっていう機能はめちゃめちゃ便利なのですが、これもやっぱり使えません。残念。 というわけで、使えるようにしてみました。

とりあえず、homebrewで新しいbashを入れる。

$ brew install bash

多分macportsでも入るのでお好みで。

無事bashが入ったら、/etc/shellsにパスを追記します。

$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash

多分こんな感じになる。

最後に、ユーザのデフォルトシェルとして設定する。

$ chsh -s /usr/local/bin/bash

パスワードを聞かれるので、答えたら設定出来るはず。 non-standard shellとか言われたら、/etc/shellsの設定が間違っているので確認してください。

設定が完了したらターミナルを再起動してみて、

$ echo $BASH_VERSION

とかすると、新しいバージョン番号が表示されるはずです。

あとは

$ echo shopt -s globstar >> ~/.bash_profile

とかでしてお好みの設定をどうぞ。

参考: » Get yourself globstar, bash 4 for your Mac terminal Mister Morris