[BASH] Comment ne pas exécuter une boucle for quand aucun fichier ne correspond ?
Description de la problématique
Soit un répertoire vide, sur lequel on effectue la commande suivante :
for i in *.xls
do
echo $i
done
Le programme va retourner :
*.xls
Ce qui se révèle très problématique lors de l’exécution d’une commande dans le for.
Résolution de la problématique
La commande
shopt - s nullglob
va permettre de bloquer ce comportement.
shopt - s nullglob
for i in *.xls
do
echo $i
done
Le programme va alors retourner :
Explication
nullglob est une option du Shell Bash qui modifie l’interprétation des métacaractères glob. Il va notamment, dans le cas où le modèle ne correspond à aucun fichier demandé, ne rien renvoyer au lieu de lui même.
Accueil > Linux > Développement > [BASH] Comment ne pas exécuter une boucle for quand aucun fichier ne (...)