답변:
이어 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에서 사용할 때 ~/.zshrczshrc가 실행되는 동안 경로에 아무것도 없다는 오류가 항상 나타납니다.
-g범위 제한을 피하는 것이지만 ~/.zshrc의 범위는 이미 전역입니다. 또한 zsh비어있는 것에 대해 불평하는 것을 본 적이 없습니다 $PATH(명령은 물론 오류를 찾을 수 없음).
다음과 같은 작업을 수행해야합니다.
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
이것은 newpathbu 2 ':'로 구분 되는 경우에만 작동 하며, 시작 또는 끝이 비슷한 경우를 고려해야합니다.
어.
echo "$PATH" : 대체 변수를 큰 따옴표로 묶으십시오 ). case ":$PATH:" in *:/new/directory:*) :;; *) PATH=$PATH:/new/directory;; esac