zsh 매개변수의 모든 속성을 인쇄하는 방법은 무엇입니까?

zsh 매개변수의 모든 속성을 인쇄하는 방법은 무엇입니까?

-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.

관련 정보