Answers:
In zsh
$PATH
与数组绑定(请参阅参考typeset -T
)$path
。您可以通过以下方式强制该数组具有唯一值:
typeset -U path
然后,添加路径:
path+=(~/foo)
不必担心它是否已经存在。
要将其添加到前面,请执行以下操作:
path=(~/foo "$path[@]")
要么:
path[1,0]=~/foo
如果~/foo
已经在$path
那,它将移到前面。
typeset -Ug path
吗 当我typeset -U path
在~/.zshrc
文件中使用时,我总是会得到一个错误,提示zshrc运行时路径中没有任何内容
-g
为避免限制范围,但在中~/.zshrc
,范围已是全局的。另外,我从来没有见过zsh
关于空的抱怨$PATH
(当然除了找不到命令的错误以外)。
您必须执行以下操作:
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
仅当newpath
以两个':'分隔时,此方法才有效,需要类似地考虑在开头或结尾处的情况。
嗯
echo "$PATH"
:总是在变量替换前后加上双引号)。case ":$PATH:" in *:/new/directory:*) :;; *) PATH=$PATH:/new/directory;; esac