if conditions multiples et tester existence fichier générique
Bonsoir à tous,
J'utilise dans un script shell un outil qui va générer des fichiers de sorties différents selon la taille du fichier "f" passé en entrée.
Avant de poursuivre le script, je souhaite vérifier que les fichiers générés soient corrects.
2 cas à vérifier :
-premier cas, l'outil doit avoir générer les fichiers suivants :
Code:
f.ext1 f.ext2 f.ext3
-second cas, l'outil doit avoir générer les fichiers suivants :
Code:
f.00.ext1 f.00.ext2 f.00.ext3 f.virt
J'ai donc écris une conditionnelle :
Code:
1 2 3 4 5 6 7
| if [[ ( -s f.ext1 && -s f.ext2 && -s f.ext3 ) || ( -s f.00.ext1 && -s f.00.ext2 && -s f.00.ext3 && -s f.virt )]]
then
echo ok
else
echo "ko"
exit 1
fi |
Je souhaiterai maintenant rendre le test sur la seconde partie de mon test générique en utilisant des plages de valeurs telles que [0-9] ou [[:digit:]].
En effet, l'outil peut générer des fichiers comme :
Code:
f.01.ext1 f.01.ext2 f.01.ext3 f.02.ext1 f.02.ext2 f.02.ext3 etc ...
J'ai donc essayé :
Code:
if [[ ( -s f.ext1 && -s f.ext2 && -s f.ext3 ) || ( -s f.[0-9][0-9].ext1 && -s f.[0-9][0-9].00.ext2 && -s f.[0-9][0-9].00.ext3 && -s f.virt )]]
Mais cela ne fonctionne pas, c'est à dire que -s f.[0-9][0-9].00.ext2 n'est pas interprété comme je le souhaiterai et ne reconnait pas le fichier f.00.ext1 par exemple.
Comment faire ?
Je ne suis pas familier avec cette écriture à base de double brackets [[ ]], si quelqu'un peut m'aider sur ce point également, son aide est la bienvenue :).
merci d'avance.
ben