こんなの。
PATH=~/mycmd:/usr/local/bin:~/mycmd:・・・
個人的にはこのワンライナーを使うと思う。
export PATH=`echo $PATH | tr ':' '\n' | sort -u | paste -d: -s -`;
ただ、sort -uだと順番かわるから、uniqで書けないですかね。
重複エントリを削除するのではなくて、重複しないようにエントリを追加する場合は広く使われるパターンがあるようです。
Bug 544652 – speed up pathmunge inside of bashrc, profile
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ]; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
***
どっちにしても、こんな状況にはまるのはやっつけ作業のときだけのような気がします。
特定のpathを通した環境で作業したい場合、端末を開いてPATHを設定し、そのあとはその端末でず~っと作業するからです。
PATH環境変数にpathを追加して、
環境変数も設定するスクリプト
を何回も実行するような状況自体が間抜けすぎる気がします。
そういうのは、
最初に実行するスクリプト
設定変更のたびに実行するスクリプト
に分けりゃいいだけのような気がします。
コメント