Quelqu’un peut-il guider vers un document ou expliquer sur le ci-dessous
De la page de manuel de ksh
.
Erreurs non gérées
Les erreurs détectées par le shell, telles que les erreurs de syntaxe, obligent le shell à renvoyer un état de sortie non nul . Si le shell est utilisé de manière non interactive , alors l’ exécution du fichier shell est abandonnée SAUF si l’erreur se produit dans un sous – shell, auquel cas le sous – shell est abandonné .
La gestion des erreurs
Vérifiez les codes de sortie / retour pour gérer les erreurs:
if [ $exit_code != 0 ]; then # Your error handler fi
Exemple
test_handler() { ls file_not_present if [ $? -eq 2 ]; then echo "Handler for No such file or directory" elif [ $? -ne 0]; then echo "Handler for any other exception" else echo "Succesful execution" fi }
Jettera :
ls: cannot access non_file: No such file or directory Handler for No such file or directory
Mais si la commande ne se ferme pas:
test_handler() { l file_not_present if [ $? -eq 2 ]; then echo "Handler for No such file or directory" elif [ $? -ne 0 ]; then echo "Handler for any other exception" else echo "Succesful execution" fi }
Le résultat sera:
l: not found [No such file or directory] Handler for any other exception
Le shell renvoie le statut de sortie de la dernière commande exécutée (voir aussi la commande exit ci-dessus). Les erreurs d’exécution détectées par le shell sont signalées en imprimant le nom de la commande ou de la fonction et la condition d’erreur. Si le numéro de ligne sur lequel l’erreur s’est produite est supérieur à un, le numéro de ligne est également imprimé entre crochets ([]) après le nom de la commande ou de la fonction.