Adding a new entry to the PATH variable in ZSH

后端 未结 6 1984
暗喜
暗喜 2020-11-29 14:43

I\'m using zsh and I\'m trying to add a new entry (/home/david/pear/bin) to the PATH variable but I don\'t know how.

The thing that confuse

6条回答
  •  旧巷少年郎
    2020-11-29 15:35

    You can append to your PATH in a minimal fashion. No need for parentheses unless you're appending more than one element. It also usually doesn't need quotes. So the simple, short way to append is:

    path+=/some/new/bin/dir
    

    This lower-case syntax is using path as an array, yet also affects its upper-case partner equivalent, PATH (to which it is "bound" via typeset).

    (Notice that no : is needed/wanted as a separator.)

    Common interactive usage

    Then the common pattern for testing a new script/executable becomes:

    path+=$PWD/.
    # or
    path+=$PWD/bin
    

    Common config usage

    You can sprinkle path settings around your .zshrc (as above) and it will naturally lead to the earlier listed settings taking precedence (though you may occasionally still want to use the "prepend" form path=(/some/new/bin/dir $path)).

    Related tidbits

    Treating path this way (as an array) also means: no need to do a rehash to get the newly pathed commands to be found.

    Also take a look at vared path as a dynamic way to edit path (and other things).

    You may only be interested in path for this question, but since we're talking about exports and arrays, note that arrays generally cannot be exported.

    You can even prevent PATH from taking on duplicate entries (refer to this and this):

    typeset -U path
    

提交回复
热议问题