web-dev-qa-db-ja.com

ディレクトリがまだ存在しない場合にのみ、zshのPATHにディレクトリを追加する方法はありますか?

Zshでディレクトリがまだ存在しない場合にのみ、PATHにディレクトリを追加する簡単な方法はありますか? (または、より一般的には、任意の環境変数)。私はもう試した:

PATH+=/my/directory

...しかし、それが2回実行されると、2回追加されます。

15
Andrew Ferrier

zshでは、$PATHtypeset -T配列に関連付けられています($pathを参照)。次のようにすると、配列にniqueの値を強制的に設定できます。

typeset -U path

次に、次のパスを追加します。

path+=(~/foo)

すでにあったとしても心配する必要はありません。

フロントに追加するには、次のようにします。

path=(~/foo "$path[@]")

または:

path[1,0]=~/foo

~/fooがすでに$pathにあった場合は、それが前面に移動します。

32

スタートアップファイルの1つにexport -U PATH=~/foo${PATH:+:$PATH}を追加します。 -Uは、配列内の値の最初の出現のみ、またはPATHなどの特定の:区切り変数を保持します。

3
llua