Comment faire un tableau en shell?
Maintenant, j'utilise une vilaine façon de créer des tableaux dans le shell, par exemple,
ARG_ARRAY=(num1 num2 num3 num4 num5 num6 num7 num8 num9 num10)
Cela peut-il être plus élégant ? tout comme le C, p. ex.
ARG_ARRAY=num[10]
- Vous ne pouvez pas créer des tableaux en Bourne shell, parce que Bourne shell ne prend pas en charge les tableaux. Vous pouvez créer des tableaux dans bash, zsh, ksh, et autres coquillages, mais vous ne pouvez pas "faire un tableau de la coquille". Coquilles de varier, et le mot "coquille" par lui-même implique Bourne shell (pas de bash).
- vous avez raison, merci.
Vous devez vous connecter pour publier un commentaire.
ARG_ARRAY=(num{1..10})
êtreARG_ARRAY=$(num{1..10})
?Si vous voulez déclarer explicitement que
ARG_ARRAY
est un tableau, utiliser (bash):Ensuite, vous pouvez définir ses valeurs avec:
Vous ne pouvez pas spécifier une taille pour un tableau indexé, indexé, vous n'avez pas réglé aurez simplement à être vide si vous essayez d'y accéder.
declare
n'est pas nécessaire sauf si vous faites un tableau associatif. Les tableaux en Bash avec la normale entiers utilisés comme clés sont créés dynamiquement lors de l'attribution, de sorteARG_ARRAY[$index]=whatever
est tout aussi bon. Bien sûr, faire undeclare
améliore la lisibilité et ne fait jamais de mal. 🙂Si vous souhaitez déclarer un tableau constante vous pouvez le faire facilement après le réglage de la valeur:
De toute évidence, cela protège l'ensemble de la matrice:
Il protège également les éléments individuels d'être changé:
...et inséré: