Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Mon 22 Dec 2014, 03:52
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Traitement des erreurs dans un script bash
Moderators: Béèm, darkerror05
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
Page 1 of 1 Posts_count  
Author Message
musher0


Joined: 04 Jan 2009
Posts: 4465
Location: Gatineau (Qc), Canada

PostPosted: Mon 28 Jan 2013, 20:07    Post_subject:  Traitement des erreurs dans un script bash
Sub_title: Dans DOS, c'était facile !
 

Bonjour.

J'ai créé un script que j'essaie de rendre le plus étanche possible (foolproof, en anglais... Le traducteur est en congé aujourd'hui ! Cool ).

On trouve dans le .xinitrc de BK, par exemple :
Si fbpanel existe, lancer fbpanel.
Code:
[ -e fbpanel ] && fbpanel


Certains recommandent de placer ceci comme 1ère ligne de script
Code:
#!/bin/bash -ex

Source : http://www.turnkeylinux.org/blog/shell-error-handling
Pas essayé, par contre. Je ne sais pas ce que ça vaut...

Dans DOS, on avait les errorlevel. Par ex.
Si errorlevel 1, faire telle chose
Si errorlevel 2, sortir du script
Si errorlevel 3, lancer script no 2
etc., etc.
Ça pouvait servir de condition ou d'aiguillage, mais ça renseignait aussi sur ce qui n'allait pas dans le fichier de séquence (batch file).

On a rien comme ça dans bash, hein? Ça serait diablement commode.

Merci d'avance.

musher0

_________________
"Logical entities must not be multiplied needlessly." / "Il ne faut pas multiplier les êtres logiques inutilement." (Ockham)
Back to top
View user's profile Send_private_message Visit_website 
Argolance


Joined: 06 Jan 2008
Posts: 1851
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Sun 03 Feb 2013, 14:19    Post_subject:  

Hello musher0,
Quote:
On a rien comme ça dans bash, hein? Ça serait diablement commode.
Peut-être que je réponds à côté mais le fichier /tmp/xerrs.log signale tout ce qui ne va pas lors de l’exécution d'un fichier batch. Les erreurs peuvent aussi être contrôlées si on le lance en console.
J'ai perso pris l'habitude de mettre quelques lignes en début de script ou dans un script préliminaire portant le nom du script, lui-même renommé en "script.sh" qui vérifie si l'application n'est pas déjà en cours d'exécution et ouvre une petite fenêtre pour avertir l'utilisateur.
Pour pmount par exemple:
Code:
#!/bin/sh

if [ "`pidof gtkdialog_pmount`" = "" ]; then #si pmount n'est pas en cours d'utilisation alors...
exec /usr/sbin/pmount.sh &
else #sinon... Là on pourrait afficher un message d'avertissement. Dans le cas présent l'application est fermée si elle est déjà en cours d’exécution puis relancée, ce qui a pour effet de rafraichir la liste des périphériques internes ou externes présents sur la machine)
killall gtkdialog_pmount 2>/dev/null
exec /usr/sbin/pmount.sh &
fi
exit

Cordialement.
212830_295x94_easyshot.jpg
 Description   
 Filesize   5.46 KB
 Viewed   137 Time(s)

212830_295x94_easyshot.jpg


_________________

Back to top
View user's profile Send_private_message Visit_website 
musher0


Joined: 04 Jan 2009
Posts: 4465
Location: Gatineau (Qc), Canada

PostPosted: Sun 03 Feb 2013, 14:56    Post_subject:  

Salut, argolance.

Merci.

Ton script est intéressant et intelligent Smile, mais je cherche quelque chose qui "dirait" un numéro ou un code explicatif sur l'exécution d'un script après. Ainsi, dans le script même, on pourrait récupérer ce numéro (disons, 85, ou 123, peu importe) et faire faire quelque chose d'autre au script afin de compenser l'erreur. Je savais faire ça dans DOS, mais dans bash je ne trouve rien d'approchant.

J'suis dans les hautes sphères, hein ? Embarassed

A+

musher0

_________________
"Logical entities must not be multiplied needlessly." / "Il ne faut pas multiplier les êtres logiques inutilement." (Ockham)
Back to top
View user's profile Send_private_message Visit_website 
Display_posts:   Sort by:   
Page 1 of 1 Posts_count  
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Jump to:  

Rules_post_cannot
Rules_reply_cannot
Rules_edit_cannot
Rules_delete_cannot
Rules_vote_cannot
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0559s ][ Queries: 13 (0.0068s) ][ GZIP on ]