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 Sun 23 Nov 2014, 23:09
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 [3 Posts]  
Author Message
musher0


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

PostPosted: Mon 28 Jan 2013, 20:07    Post subject:  Traitement des erreurs dans un script bash
Subject description: 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 poster's website 
Argolance


Joined: 06 Jan 2008
Posts: 1846
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 poster's website 
musher0


Joined: 04 Jan 2009
Posts: 4332
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 poster's website 
Display posts from previous:   Sort by:   
Page 1 of 1 [3 Posts]  
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:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0504s ][ Queries: 12 (0.0048s) ][ GZIP on ]