zsh

Comment puis-je ajouter le mot à chaque élément de la matrice dans Zsh?

J'ai fait à Zh:

array={geometry, analysis, topology, graph theory, calculus}
echo $array

Et puis je voulais ajouter le mot "mathématiques:" à chaque élément, par exemple "Mathématiques: Calculus":

while (( i++ < 10)); { echo math:$array[i] }

Mais ça ne marche pas? Pourquoi?
Invité:

Emilie

Confirmation de:

Je travaille bien dans zsh Avec un changement de destination avec:

array={geometry, analysis, topology, graph theory, calculus}

à

array=(geometry, analysis, topology, graph theory, calculus)

Mais W. zsh Il y a beaucoup d'options qui changent de comportement. Peut-être que la conclusion aidera setopt.

Alice

Confirmation de:

Juste faire:

array=(geometry analysis topology "graph theory" calculus)
print -l math:${^array}

ou vérifier

RC_EXPAND_PARAM

pour

${^var}

la forme.

Agathe

Confirmation de:

Eh bien, je vais risquer ici (parce que je ne suis pas d'accord avec le fait que le code auxiliaire est fidèle) Et je dirai que dans «echo math: $ array [i]» signe de dollar manquant et devrait être «echo mathématiques: $ array [$ i] "

Catherine

Confirmation de:

L'itération sur le massif fonctionne mieux avec

for

Parce que vous ne surmonterez pas la fin comme votre code (Si vous ne définissez pas la taille de la taille de la matrice en utilisant $ {# array [*]}).

De plus, je suppose que vous ne voulez pas que les virgules soient incluses dans le cadre des lignes, et vous devez utiliser des supports ronds au lieu de supports bouclés pour votre réseau.

array=(geometry analysis topology "graph theory" calculus)
for i in $array; do echo math:$i; done

Pour répondre aux questions, connectez-vous ou registre