J'ai un script qui est un script dans une chaîne d'autres qui envoie un e-mail.
Au début du script, je veux vérifier si un fichier existe et continuer uniquement s'il existe, sinon quittez simplement.
Voici le début de mon script:
if [ ! -f /scripts/alert ];
then
echo "File not found!" && exit 0
else
continue
fi
Cependant, je reçois toujours un message disant:
line 10: continue: only meaningful in a `for', `while', or `until' loop
Des pointeurs?
Changez-le en ceci:
{
if [ ! -f /scripts/alert ]; then
echo "File not found!"
exit 0
fi
}
Un conditionnel n'est pas une boucle, et il n'y a aucun endroit où vous devez sauter. L'exécution continue simplement après le conditionnel de toute façon.
(J'ai également supprimé l'inutile &&
. Non pas que cela se produise, mais juste au cas où le echo
échoue, il n'y a aucune raison de ne pas quitter.)
Votre problème est avec la ligne continue
qui est normalement utilisée pour passer à l'itération suivante d'une boucle for
ou while
.
Par conséquent, la simple suppression de la partie else
de votre script devrait lui permettre de fonctionner.
Oui. Jeter le else continue
. C'est totalement inutile.