zsh 中是否有一种简单的方法可以将目录添加到我的 PATH(仅当该目录尚不存在时)? (或者,更一般地说,任何环境变量)。我试过了:
PATH+=/my/directory
...但是如果执行了两次,它就会被添加两次。
答案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}
到您的启动文件之一。仅保留数组或某些分隔变量(如 PATH)-U
中第一次出现的值。:
答案3
你必须做类似的事情:
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
仅当由两个“:”分隔时才有效newpath
,需要类似地考虑它位于开头或结尾的情况。
呃。