9

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

ありがとう!

4

2 に答える 2