環境変数PATHを追加する時、PATHに登場する順番が大事。
適当にbashrc に追記してたらカオスになる。
ヒューリスティクス に考えてパス文字列が長いほど優先度が高い。
自前のコマンドほど、PATHが長い。
/home/takuya/bin/vim # 普段使い /usr/local/bin/vim # homebrew /usr/bin/vim # OSX標準
ということです。
なので、「パス文字列の長さ」でパスの順番を整えてしまえば、bashrc の読み込み順に左右されずに済みそう
やってみた。
#重複登録はできるだけ避ける。 add_path(){ path=$1; if [ -z ` echo $PATH | sed s/:/\\\n/g | /bin/grep -e ^$path` ] ; then export PATH=$path:$PATH; fi } export LANG=ja_JP.UTF-8 #export PATH=~/bin:$PATH add_path /usr/local/bin add_path /bin add_path /usr/local/sbin add_path /usr/bin #ソートする。 if [ -x /usr/bin/ruby ] ;then export PATH=$(ruby -e "puts '$PATH'.split(/:/).sort{|a,b| -(a.size <=> b.size)}.join(':')") fi
あれこれ試したけど結局ruby です。ええ、負けた気がするけどコレでいいと思いました。