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
이것은 newpath
bu 2 ‘:’로 구분 되는 경우에만 작동 하며, 시작 또는 끝이 비슷한 경우를 고려해야합니다.
어.