在ZSH中添加一个新的条目到PATHvariables
我正在使用zsh,我试图向PATH
variables添加一个新条目( /home/david/pear/bin
),但是我不知道如何。
最让我困惑的是在我的~/.zshrc
文件中没有一个PATH
variables的引用,但是执行echo $PATH
返回:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
所以一个PATH
variables正在被设置。
这里:
export PATH=/home/david/pear/bin:$PATH
实际上,使用ZSH允许您使用环境variables的特殊映射。 所以你可以简单地做:
# append path+=('/home/david/pear/bin') # or prepend path=('/home/david/pear/bin' $path) # export to sub-processes (make it inherited by child processes) export PATH
对我来说,这是一个非常整洁的function,可以传播到其他variables。 例:
typeset -T LD_LIBRARY_PATH ld_library_path :
您可以以最简单的方式追加到PATH
中。 除非你追加多个元素,否则不需要括号。 它通常也不需要引号。 所以简单,简单的追加方法是:
path+=/some/new/bin/dir
常见用法
那么testing新脚本/可执行文件的常见模式就是:
path+=$PWD/. # or path+=$PWD/bin
这种小写的语法是使用path
作为数组 ,但也会影响其大写伙伴等效PATH
(通过typeset
“绑定到”)。
(请注意, 不需要/需要作为分隔符 。)
相关花絮
以这种方式处理path
(作为一个数组)也意味着: 不需要进行重新rehash
来获得新的path命令。
也可以看看vared path
作为编辑path
和其他东西的dynamic方法 。
您可能只对此问题感兴趣,但由于我们正在讨论导出和数组,所以请注意数组通常不能导出。
你甚至可以阻止PATH
重复input (参考这个和这个 ):
typeset -U path