Unix shell bash script - Itération d'une matrice en un "pour" boucle

J'ai le script de test suivant:

#!/bin/sh

testArray=(A,B,C,D,E)
currentValue=''
tempValue=x

for i in "${testArray[@]}"
    do
        currentValue=$i

        echo "Processing " ${currentValue}

        if [ ${currentValue}==A ]
        then
            tempValue="$i 123"
        else
            tempValue=$i
        fi

        echo "Current loop " ${tempValue} 
        echo `date`

    done

Quand je l'ai tester, le résultat que j'obtiens est

Processing  A,B,C,D,E
Current loop  A,B,C,D,E 123
Mon Dec 2 20:33:26 GMT 2013

Il ressemble à la "pour" boucle en Bash fonctionne en quelque sorte différemment de ce que je suis habitué à ce que j'attendais la sortie suivante (c'est à dire ce qui est dans le "pour" de la boucle pour être répétée pour chacun des éléments du tableau)

Processing  A
Current loop  A 123
Mon Dec 2 20:29:44 GMT 2013

Processing  B
Current loop  B
Mon Dec 2 20:29:45 GMT 2013

Processing  C
Current loop  C
Mon Dec 2 20:29:46 GMT 2013

Processing  D
Current loop  D
Mon Dec 2 20:29:47 GMT 2013

Processing  E
Current loop  E
Mon Dec 2 20:29:48 GMT 2013
  • Pourquoi le 123 à la fin?
  • Pourquoi la date de la commande exécutée qu'une seule fois et non pas pour chaque itération
  • Que dois-je faire pour rendre chaque itération travail correctement.

Fondamentalement, ce que je suis en train de réaliser est d'écrire un script qui parcourt une liste de tableau et d'exécuter la même commande en fonction de différents paramètres dépend de la valeur de l'élément courant du tableau. J'ai écrit le script ci-dessus pour essayer de comprendre comment la boucle fonctionne, mais je ne reçois pas la sortie, je m'attendais.

InformationsquelleAutor ziggy | 2013-12-02