zsh で、連想配列を別の変数に割り当てる方法はありますか? 私はこのようなことをしたいと思います:
typeset -A orig
orig=(key1 val1 key2 val2)
typeset -A other
other=$orig
print '$orig: '$orig
print '$other: '$other
print '$orig[key1]: '$orig[key1]
print '$other[key1]: '$other[key1]
これは印刷されます:
$orig: val1 val2
$other: val1 val2
$orig[key1]: val1
$other[key1]:
$other[key1]
使えるようになりたいですval1
。
キーを反復処理してアイテムごとにコピーできることはわかっていますが、これは本当に避けたいです。また、eval
悪です:)
私は他のバリエーションを試しother=($orig)
ましたが、これは私の値を取得し、このorig
ような連想配列として作成します
other=(val1 val2)
したがって、other[key1]
何も返さず、 をother[val1]
返しますがval2
、これは私が望むものではありません。
私が正しく理解していれば、私のすべての試みで起こっていることは、キーなしで の値の$other
配列を取得することです。キーと値の両方を受け取り、それらを正しく関連付けるにはどうすればよいですか?$orig
null 値が問題になるとしても、私は心配していません$orig
。
ありがとう!