-U
重複した要素を含めることができないように、非関連配列にこのプロパティを提供できます。
% declare -U path
% path=( ~/bin $path )
% path=( ~/bin $path )
% echo $path
ここでは~/bin
配列にpath
2回追加しましたが、後者には1つの要素しか含まれていません~/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
。