仅当目录尚不存在时,zsh 中是否有一种简单的方法可以将目录添加到我的 PATH 中?(或更一般地说,任何环境变量)。我试过了:
PATH+=/my/directory
Run Code Online (Sandbox Code Playgroud)
...但如果执行两次,它会被添加两次。
Sté*_*las 42
Inzsh
$PATH
与数组相关联(参见typeset -T
)$path
。您可以强制该数组具有唯一值:
typeset -U path
Run Code Online (Sandbox Code Playgroud)
然后,添加路径:
path+=(~/foo)
Run Code Online (Sandbox Code Playgroud)
不必担心它是否已经存在。
要将其添加到前面,请执行以下操作:
path=(~/foo "$path[@]")
Run Code Online (Sandbox Code Playgroud)
或者:
path[1,0]=~/foo
Run Code Online (Sandbox Code Playgroud)
如果~/foo
已经在里面$path
,就会把它移到前面。