■ [shell][howto] zshでPATHのような変数の値が重複しないようにする zshにて環境変数PATHのようにコロン区切りの変数の値が重複しないようにしたい。 $ VAR=aaa:bbb:aaa としたときに $ echo $VAR aaa:bbb と振る舞って欲しいということ。 以前は「いい方法は見当たらなかった」と書いているがいい方法はある。 設定方法 組み込みコマンドのtypesetを使って $ typeset -TU VAR var とする。「var」の部分はほかの変数と同名にならなければ何でもよい。 -Tオプションで変数VARを配列変数varと関連づけ、-Uで重複除去の属性をセットしている。-Tは余計な設定に感じるが、これが無いと動作しない(少なくとも手元のzsh 4.3.11では)。 動作例 $ VAR=aaa:bbb:aaa $ echo $VAR aaa:bb