Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2638 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Gestion des erreurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gestion des erreurs

n°1428080
blastrider
On n'attend pas votre soeur ?
Posté le 06-01-2019 à 01:14:05  profilanswer
 

Bonjour à tous,
 
Je suis en train de créer un script pour installer un logiciel sous linux, mais à l'execution du logiciel installé j'ai une erreur.
 
1) Je sais qu'on peut "try ... catch" sur Java et je voulais savoir s'il y avait une manière de faire ce genre de choses avec un script #!bin/bash?
 
2) Cette erreur est dûe a l'execution du fichier installé et non à mon script, est-il possible "d'attraper" cette erreur avec bash?
 
3) Enfin, je sais quelles sont les erreurs dues à cette installation logicielle en particulier (des librairies à changer) , et comment y remédier, ma question est simplement sur le concept de gestion d'erreurs sur bash.
 
 N'hésitez pas à me dire s'il faut que je RTFMN, j'ai probablement du louper une page :)
 
Bisous!


---------------
Papa, maman je vous aime
mood
Publicité
Posté le 06-01-2019 à 01:14:05  profilanswer
 

n°1428126
kisscoolz
Posté le 06-01-2019 à 17:54:43  profilanswer
 

Bonjour,
 
Tu dis que le script à fait son job, alors pourquoi vouloir le débugguer lui ?  
 
Comment est lancé l'application ? Par bash ? Un lanceur d'application .desktop ou autre ?  
 
Un dev java avait deja essayé de m'expliquer le try catch, j'ai jamais vraiment compris n'y adhérer d'ailleurs, ca fait quoi exactement ?


---------------
http://lacabanedeladmin.trickip.net/
n°1428127
blastrider
On n'attend pas votre soeur ?
Posté le 06-01-2019 à 18:18:16  profilanswer
 

Le try catch sert à lancer une partie de code critique et de spécifier le type d'erreur au cas où ça bug par défaut, mais surtout d'enchaîner sur une autre action. Par exemple quand ton application te demande une division et que par mégarde tu essaies de diviser par 0 au lieu de retourner une erreur,  tu "attrapes l'erreur"  et tu prévois soit une alternative dans ton code,  soit tu retournes un message type " On ne divise pas par zéro " toujours à titre d'exemple.  
Maintenant je souhaite compléter mon script pour gérer des lacunes de librairies, nécessaires à la bonne exécution du programme.  Il me manque notamment la librairie libpng12-0 mais je sais qu'elle est déjà dispo sur d'autres distributions et si je veux faire marcher mon script sur autre chose qui soit antérieur à stretch, je veux gérer cette erreur au lieu d'installer bêtement une librairie pour l'installer. Ou peut-être vérifier sa présence et gérer ça avec if... else.... et les variables d'environnement, et lancer l'installation si elle est absente. C'est peut-être une meilleure idée. Mais je balbutie en script et je veux scripter propre.  
Ensuite mon programme je l'exécute par bash avec ./ dans mon script ce qui occasionne une erreur quand on n'a pas les autres lib.  
Merci de ton retour ça fait plaisir :-)


Message édité par blastrider le 06-01-2019 à 18:19:58
n°1428129
kaari
Fuck Yeah !
Posté le 06-01-2019 à 19:04:22  profilanswer
 

Salut :hello:
 
Tu peux utiliser des "trap"s pour l'error handling du main process.
En ce qui concerne les subprocess, tu peux récupérer le dernier code renvoyé avec la variable "$?".


---------------
Mon topic ventes ;)
n°1428132
kisscoolz
Posté le 06-01-2019 à 19:32:27  profilanswer
 

D'accord je comprends un poil plus, enfin je crois. Dans les explications que j'avais eu, c'était du genre avec le try catch on s'en cogne des erreurs s'il y'en a, on continue quand même.  
 
Pour attraper les erreurs en scripting shell, on utilise les codes d'erreur retournés par les applications. Généralement si le programme fini correctement, il retourne un 0 (zéro). Et si y'a erreur, il renvoi un autre code, qui peut être documenté ou pas  :sarcastic: .  
 
Pour récupérer ce code, comme dit kaari, on peut se servir de la variable "$?".  
De même la présence ou non d'un fichier peut être vérifiée avec la commande test et les exécutions conditionnelles ou if else fi. Je te laisse te renseigner la dessus man sh bash test ou docs externes.


---------------
http://lacabanedeladmin.trickip.net/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Gestion des erreurs

 

Sujets relatifs
[LDAP] gestionCentralisation et gestion des logs
Open Media Vault (OMV) : gestion du compte admin system avec OwncloudOMV Gestion des dossiers et fichiers sous minidlna
Quelle distribution pour de la bureautique/mail/gestion de compteGestion accès multiples serveurs linux
logiciel gestion compta/factiration open sourcesScript Bash : Gestion des erreurs
postfix : gestion des codes d'erreurs ?[Debian] Gestion des erreurs
Plus de sujets relatifs à : Gestion des erreurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR