Linux: Contrôler le flux d'exécution

Dans les scripts bash Linux, vous pouvez contrôler le flux d'exécution - l'ordre dans lequel les commandes sont exécutées - en utilisant des commandes spéciales telles que if, case, pour, et tandis que.

Ces instructions de contrôle utilisent le statut de sortie d'une commande pour décider quoi faire ensuite. Lorsqu'une commande est exécutée, elle renvoie un état de sortie - une valeur numérique qui indique si la commande a réussi ou non. Par convention, un statut de sortie de zéro signifie que la commande a réussi. (Oui, vous avez bien lu: Zéro indique le succès!) Un état de sortie différent de zéro indique que quelque chose s'est mal passé avec la commande.

Par exemple, supposons que vous vouliez faire une copie de sauvegarde d'un fichier avant de l'éditer avec l'éditeur vi. Plus important encore, vous voulez éviter d'éditer le fichier si une sauvegarde ne peut pas être faite. Voici un script bash qui s'occupe de cette tâche:

 #! / bin / sh si cp "$ 1" "# $ 1" puis vi "$ 1" else echo "Impossible de créer une copie de sauvegarde" fi 

Ce script illustre la syntaxe de la structure if-then-else et montre le statut de sortie de la commande cp est utilisée par la commande if pour déterminer l'action suivante. Si cp renvoie zéro, le script utilise vi pour éditer le fichier; sinon, le script affiche un message d'erreur et quitte.

Ne pas oublier le dernier fi qui termine la commande if. Oublier fi est une source commune d'erreurs dans les scripts bash.