我可以将-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
属性。
是否有另一个命令可以打印参数的所有属性?
您可以使用:
$ echo ${(t)path}
array-unique-special
我希望typeset -p path
(或者declare
我更喜欢,typeset
因为它更便于携带)提供这些信息。但是在当前版本中却没有,对我来说似乎是个错误(编辑:现在已修复)。
您还可以使用:
typeset -U +
用unique
属性列出变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句