Come definire gli array in zsh con i nomi delle chiavi forniti dall'utente

Aug 25 2020

Ho appena iniziato a utilizzare zsh e non riesco a capire come definire gli array con le chiavi definite dall'utente.

(Sto seguendo le documentazioni sugli array:http://zsh.sourceforge.net/Doc/Release/Parameters.html#Array-Parameters)

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

Cosa sto facendo di sbagliato qui? C'è un modo per definire un array con nomi di indice definiti dall'utente come in bash?

Risposte

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

Questa sintassi è stata introdotta in 54b395844030342213cacba4c569a6c5e6781c46 , che è stata rilasciata per la prima volta in zsh 5.5 nell'aprile 2018. La tua versione zsh è presumibilmente più vecchia di quella.

Nelle versioni precedenti è possibile utilizzare assegnazioni separate per ogni tasto.

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

Nota che se vuoi un array associativo (con stringhe come chiavi, non numeri interi positivi), devi prima dichiarare l'array con typeset -A array.