zsh에서 내 PATH에 디렉토리를 추가하는 쉬운 방법이 있습니까(디렉토리가 아직 존재하지 않는 경우에만)? (또는 보다 일반적으로 모든 환경 변수). 나는 시도했다:
PATH+=/my/directory
...하지만 두 번 실행하면 두 번 추가됩니다.
답변1
In은 zsh
$PATH
배열과 연관되어 있습니다( 참조 typeset -T
) $path
. 배열이 다음을 갖도록 강제할 수 있습니다.고유한값은 다음과 같습니다.
typeset -U path PATH
( U
여기에도 nique 속성이 추가되어 $PATH
대신에 할당할 때 중복 제거도 발생합니다)$PATH
$path
그런 다음 경로를 추가합니다.
path+=(~/foo)
이미 존재하더라도 걱정하지 마십시오.
맨 앞에 추가하려면 다음을 수행합니다.
path=(~/foo "$path[@]")
또는:
path[1,0]=~/foo
~/foo
이미 들어 있는 경우 $path
앞쪽으로 이동됩니다.
답변2
export -U PATH=~/foo${PATH:+:$PATH}
시작 파일 중 하나에 추가하세요 . 배열이나 PATH 와 같은 구분된 변수 -U
에서 처음 나타나는 값만 유지합니다.:
답변3
다음과 같은 작업을 수행해야 합니다.
if echo $PATH | grep :newpath: ; then doIfPresent; else doIfMissing; fi
두 개의 ":"으로 구분된 경우에만 유효하며 newpath
, 시작 또는 끝에 있는 경우에도 유사하게 고려해야 합니다.
잘.