[sh] pb d'arithmétique
B@|-|@N
Messages postés
386
Statut
Membre
-
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
Bonjour à tous.
Voilà mon problème :
En gros j'initialise une variable à 0 puis je teste si des fichiers existent; A chaque fois qu'il trouve qu'un fichier existe, il y a incrémentation de la variable $nb_files de 1. Or après la boucle while, quand je fais un echo $nb_files, cela me retourne : 0...
Je ne comprends pas pourquoi... Pourtant j'initialise ma variable, puis je l'incrémente normalement. Qu'est-ce qui ne va pas dans mon script ?
Bahan
--
Close the world.||.txen eht nepO
Voilà mon problème :
nb_files=0; while read _file; do if [ -s $destination_dir/$_file".txt" ]; then nb_files=`expr $nb_files + 1`; fi done <<-FIN `cat $monFichier` FIN echo $nb_files;
En gros j'initialise une variable à 0 puis je teste si des fichiers existent; A chaque fois qu'il trouve qu'un fichier existe, il y a incrémentation de la variable $nb_files de 1. Or après la boucle while, quand je fais un echo $nb_files, cela me retourne : 0...
Je ne comprends pas pourquoi... Pourtant j'initialise ma variable, puis je l'incrémente normalement. Qu'est-ce qui ne va pas dans mon script ?
Bahan
--
Close the world.||.txen eht nepO
3 réponses
-
Salut Bahan,
Peut-etre tout simplement que:nb_files=`expr $nb_files + 1`;
N'est jamais évalué (tests non satisfaits) :) -
Arf j'ai oublié de le dire mais en effet, j'ai décommenté le set -x pour avoir de plus amples iunfos sur le déroulement de mon script et voilà ce que je vois :
+ read _file + [ -s /tmp/topologie/topo_mms.txt ] + expr 14 + 1 nb_files=15 + read _file + [ -s /tmp/topologie/topo_msi.txt ] + expr 15 + 1 nb_files=16 + read _file + [ -s /tmp/topologie/topo_pcu_mms.txt ] + expr 16 + 1 nb_files=17 + read _file + [ -s /tmp/topologie/topo_gbl.txt ] + expr 17 + 1 nb_files=18 + read _file + [ -s /tmp/topologie/topo_dproc.txt ] + expr 18 + 1 nb_files=19 + read _file + [ -s /tmp/topologie/topo_gb.txt ] + expr 19 + 1 nb_files=20
Bahan
Close the world.||.txen eht nepO -
Re,
Bonche, le bout de script que j'ai fait ça fonctionne impeccable, mais j'ai l'impression que dans ce que tu nous a donné, il manque un bout de code non ? :)