Je veux accéder à la variable d'index du tableau tout en bouclant à travers un tableau dans mon script shell bash.
myscript.sh#!/bin/bash
AR=('foo' 'bar' 'baz' 'bat')
for i in ${AR[*]}; do
echo $i
done
Le résultat du script ci-dessus est:
foo
bar
baz
bat
Le résultat que je recherche est:
0
1
2
3
Comment modifier mon script pour y parvenir?
bash
shell
shell-script
Mowzer
la source
la source
"${array[*]}"
au lieu de"${array[@]}"
. Utiliser*
au lieu de@
plus ou moins la traite comme une chaîne au lieu d'un tableau.Réponses:
Vous pouvez le faire en utilisant la liste des clés de tableau . Depuis la
bash
page de manuel:Pour votre exemple:
Il en résulte:
Notez que cela fonctionne également pour les index non successifs:
Il en résulte:
la source
printf "$i=(${AR[i]})\n"
ou lesecho "$i=(${ARi]})"
deux donnent un petit plus en montrant comment obtenir key & var mais à proprement parlerecho "$i"
aurait répondu à l'OP. Le reste est "bash fu" :)En plus de la réponse de jordanm, vous pouvez également faire une
C
boucle similaire dansbash
:la source
vous pouvez faire quelque chose comme ça:
production:
la source