2 votes

Comment utiliser les tableaux en bash ?

J'essaie de le faire dans la version 16.04 mais cela ne fonctionne pas. Tiré de : https://stackoverflow.com/a/8880633/2771043 .

Edit : Apparemment cela fonctionne si vous le copiez et le collez dans un terminal mais pas sur un fichier script. Comment puis-je le faire fonctionner de la même manière sur un fichier .sh ?

declare -a arr=("element1" "element2" "element3")

for i in "${arr[@]}"
do
   echo "$i"
done

Je reçois

old.sh: 2: old.sh: Syntax error: "(" unexpected

Si j'enlève les parenthèses, j'obtiens

old.sh: 2: old.sh: declare: not found
old.sh: 5: old.sh: Bad substitution

4voto

sudodus Points 39902

Cela fonctionne si vous ajoutez la ligne crunchbang à la fin du script pour forcer l'interpréteur script à utiliser la méthode bash et ne pas utiliser par défaut l'ancienne syntaxe sh syntaxe. (Cela fonctionne pour moi aussi sans la ligne crunchbang, mais pour de nombreuses raisons, il est bon d'utiliser une ligne crunchbang).

J'ai créé le fichier arraytest .

#!/bin/bash

declare -a arr=("element1" "element2" "element3")

for i in "${arr[@]}"
do
   echo "$i"
done

Puis je l'ai rendu exécutable et l'ai exécuté.

chmod ugo+x arraytest

$ ./arraytest
element1
element2
element3

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X