
zshで私のPATHにディレクトリを追加する簡単な方法はありますか(ディレクトリがまだ存在していない場合のみ)? (またはより一般的にはすべての環境変数)。私は試した:
PATH+=/my/directory
...しかし、2回実行すると2回追加されます。
答え1
Inはzsh
$PATH
配列に関連付けられています(参照typeset -T
)$path
。配列が次のように強制できます。ユニーク値は次のとおりです。
typeset -U path PATH
(U
ここでもnique属性が追加され、代わりに割り当てる$PATH
と重複排除も発生します)$PATH
$path
次に、パスを追加します。
path+=(~/foo)
すでに存在していても心配しないでください。
先頭に追加するには:
path=(~/foo "$path[@]")
または:
path[1,0]=~/foo
~/foo
すでに含まれている場合は$path
前方に移動します。
答え2
export -U PATH=~/foo${PATH:+:$PATH}
スタートアップファイルの1つに追加してください。配列やPATHなどの区切り変数-U
で最初に表示される値のみを保持します。:
答え3
次の作業を行う必要があります。
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
2つの「:」で区切られた場合にのみ有効でnewpath
、開始または終了にある場合も同様に考慮する必要があります。
よく。