Bonjour,
J'aimerai faire un tableau (ou un liste) dont chaque élément est UN ENSEMBLE DE PLUSIEURS MOTS SEPARES PAR DES ESPACES (donc une "phrase").
Prenons comme exemple pour illustrer mon problème ceci :
- je déclare un tableau dont chaque élément est une commande à exécuter
- je souhaite exécuter chaque commande du tableau en redirigeant le résultat dans un fichier de log (utilisation d'une boucle for)
Voici à quoi ressemble le code que j'utilise :
"
fic_log=/tmp/fichier_log.log
set -A list_cmd "ls -l repertoire1" "ls -l repertoire2"
(...)
executer_commandes
{
for i in ${list_cmd[@]}
do
echo "Execution de la commande '$i' " >> ${fic_log}
echo "`$i`" >> ${fic_log}
done
}
executer_commandes
"
En déclarant le tableau comme ceci :
" set -A list_cmd ls -l repertoire1 ls -l repertoire2 "
j'ai logiquement 6 éléments (donc 6 itérations dans mon "for") :
- ls
- -l
- repertoire1
- ls
- -l
- repertoire2
Afin de n'avoir que 2 éléments (2 commandes de 3 "mots" chacune), je l'ai déclaré comme dans le code ci-dessus :
" set -A list_cmd "ls -l repertoire1" "ls -l repertoire2" "
Ceci fonctionne dans le cas des passages de paramètres à un script shell, je pensais que cela serait de même pour les éléments d'un tableau... mais ce n'est pas le cas, j'ai toujours 6 itérations de ma boucle "for"...
Quelqu'un saurait-il comment faire ce que je recherche ?
Je suis ouvert à toutes propositions, je n'ai pas obligatoirement besoin d'un tableau...
Merci par avance pour vos réponses.
Partager