디렉토리가 아직없는 경우에만 zsh의 PATH에 디렉토리를 추가하는 방법이 있습니까? 있습니까? (또는

zsh에서 디렉토리가없는 경우에만 PATH에 디렉토리를 추가하는 쉬운 방법이 있습니까? (또는 더 일반적으로 모든 환경 변수). 난 노력 했어:

PATH+=/my/directory

…하지만 두 번 실행되면 두 번 추가됩니다.



답변

이어 zsh $PATH(참조 묶여 typeset -T받는) $path배열. 다음을 사용하여 해당 배열에 고유 한 값 을 갖도록 할 수 있습니다 .

typeset -U path

그런 다음 경로를 다음과 같이 추가하십시오.

path+=(~/foo)

이미 있다면 걱정할 필요가 없습니다.

앞에 추가하려면 다음을 수행하십시오.

path=(~/foo "$path[@]")

또는:

path[1,0]=~/foo

경우 ~/foo에 이미 $path그 앞쪽으로 이동합니다.


답변

export -U PATH=~/foo${PATH:+:$PATH}시작 파일 중 하나에 추가 하십시오. 이 -U값은 배열이나 :PATH와 같은 특정 구분 변수 에서 처음 나타나는 값만 유지합니다 .


답변

다음과 같은 작업을 수행해야합니다.

if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi

이것은 newpathbu 2 ‘:’로 구분 되는 경우에만 작동 하며, 시작 또는 끝이 비슷한 경우를 고려해야합니다.

어.