ユーザー指定のキー名を使用してzshで配列を定義する方法

Aug 25 2020

zshを使い始めたばかりですが、ユーザー定義のキーを使用して配列を定義する方法がわかりません。

(私は配列に関するドキュメントに従っています: http://zsh.sourceforge.net/Doc/Release/Parameters.html#Array-Parameters)

➜ ~ array=(one [3]=three four)
zsh: no matches found: [3]=three four

私はここで何が間違っているのですか?bashのようにユーザー定義のインデックス名で配列を定義する方法はありますか?

回答

2 Gilles'SO-stopbeingevil' Aug 25 2020 at 00:49

この構文は、2018年4月にzsh5.5で最初にリリースされた54b395844030342213cacba4c569a6c5e6781c46で導入されました。zshバージョンはおそらくそれよりも古いものです。

古いバージョンでは、キーごとに個別の割り当てを使用できます。

array=(one)
array[3]=three
array[4]=four

連想配列(正の整数ではなく文字列をキーとして使用)が必要な場合は、最初にtypeset -A array。を使用して配列を宣言する必要があることに注意してください。