-U
중복된 요소를 포함할 수 없도록 비연관 배열에 이 속성을 제공 할 수 있습니다 .
% declare -U path
% path=( ~/bin $path )
% path=( ~/bin $path )
% echo $path
여기서는 ~/bin
배열에 path
두 번 추가했지만 후자에는 요소가 하나만 포함되어 있습니다 ~/bin
.
이 속성을 포함하여 할당 중에 매개 변수에 제공할 수 있는 모든 속성을 인쇄하는 방법을 찾고 있습니다 -U
.
typeset
의 명령을 살펴보고 man zshbuiltins
다음 발췌문을 찾았습니다.
name=value로 할당하지 않는 한 +m을 사용하면 함수 내에서도 일치하는 인수와 해당 속성이 인쇄됩니다.
그래서 다음 명령을 실행해 보았습니다.
% declare -U path
% declare +m 'path'
출력은 다음과 같습니다.
array path
매개변수의 유형(여기서는 배열)을 알려 주지만 해당 -U
속성이 있다는 것을 알려주지는 않습니다.
매개변수의 모든 속성을 인쇄하는 또 다른 명령이 있습니까?
답변1
당신은 그것을 사용할 수 있습니다 :
$ echo ${(t)path}
array-unique-special
정보가 제공되었으면 좋겠습니다 typeset -p path
(또는 휴대성이 더 좋기 때문에 declare
선호합니다 ). typeset
하지만 현재 버전에는 존재하지 않는데, 이는 제가 보기에는 버그인 것 같습니다(편집하다:지금은 고쳐졌어).
다음을 사용할 수도 있습니다.
typeset -U +
속성이 있는 변수를 나열합니다 unique
.