Script Bash : Utilisation de awk dans une bouble for
Bonjour à tous,
Je dois exécuter plusieurs un fichier et avant chaque exécution je dois charger un jeux de paramètres différents.
Pour cela, j'utilise un script bash et un fichier texte qui contient ligne par ligne les paramètre de je veux charger.
Le fichier texte (test.txt) :
1 11 21 31
2 12 22 32
3 13 23 33
Avec mon script Bash je souhaite lire ce fichier texte ligne par ligne. A chaque fois que je lis une ligne, je charge les paramètres qui sont distribués en colonne dans le fichier texte les uns après les autres.
Ensuit j'exécute mon programme et je répète cela jusqu'à la dernière ligne de mon programme. Voici le script que j'utilise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#!/bin/bash
set -a Param
while read ligne
do
NbCol=$(echo $ligne | awk '{print NF}')
for (( i=1; i <= $NbCol; i++ ))
do
Param[$i]=$(echo $ligne | awk '{print $i}')
export Param[$i]
echo ${Param[$i]}
done
#Ici : Le programme à exécuter
done <test.txt
exit0 |
J'ai souci avec l'utilisation de ma variable d'itération $i avec awk.
Normalement je devrais avoir pour la première ligne :
Param[1] = 1
Param[2] = 11
Param[3] = 21
Param[4] = 31
Mais j'obtiens :
Param[1] = 1 11 21 31
Param[2] = 1 11 21 31
Param[3] = 1 11 21 31
Param[4] = 1 11 21 31
Quelqu'un peut-il m'aider?