我可以将-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
属性。
是否有另一个命令可以打印参数的所有属性?
您可以使用:
我希望
typeset -p path
(或者declare
;我更喜欢typeset
它更便携)提供这些信息。但在当前版本中,这对我来说似乎是一个错误(编辑:现已修复)。您还可以使用:
列出具有
unique
属性的变量。