変態言語
ふとシェルで
echo $PATH
ってやってみたら
/home/tyru/local/bin:/home/tyru/bin:/home/tyru/local/bin:/home/tyru/bin:/home/tyru/local/bin:/home/tyru/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
あれ?随分と同じのがいくつもあるなー?と思ったので
これをどうにか重複してるものは一つにしたいと思った。
ORIG_IFS=$IFS for i in $PATH; do echo "$i"; done | sort | uniq
で、書いてみるんだけどこの次が分からない。
行を連結させるコマンドなんてあったっけ。
いやていうかそもそもこれじゃ順序が違ってるじゃん。
PATHの順序変えるのはマズいだろ・・・
とかしばらく悩んだ後、全部perlでやっちゃえばいいことに気がついた。
# duplicated path was deleted but order doesn't change if [ -x "$(which perl)" ]; then export PATH="$(perl -e 'for(split /:/, $ENV{PATH}){$h{$_} or $h{$_}=++$i} $,=q(:); %h=reverse %h; print map { $h{$_} } sort { $a <=> $b } keys %h')" fi
なにこの変態言語。