Page 1 sur 1
[Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 15:34
par Murzan
Hello,
Je tente d'exécuter du bash mais j'ai un petit problème, je souhaite, en cas d'erreur, que le script s'interrompe automatiquement.
Je sais qu'en cas de problème, un code d'erreur est retourné, mais je ne sais pas comment l'exploiter...
Voici un exemple de portion de code :
Code : Tout sélectionner
mkdir /newarch
mkswap /dev/hda3 --> en cas d'erreur s'interrompre
swapon /dev/hda3
...
Merci d'avance !
Re: [Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 16:01
par schaars
Bonjour
La valeur de retour d'un programme est contenue dans la variable $?.
Par exemple :
Et donc l'idée est de tester cette valeur, par exemple en faisant (j'ai pas regardé
Code : Tout sélectionner
mkswap /dev/hda3 --> en cas d'erreur s'interrompre
if [ $? -eq 0 ]; then
swapon /dev/hda3
else
echo erreur
fi
Re: [Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 17:35
par mathieuI
schaars a écrit :Bonjour
La valeur de retour d'un programme est contenue dans la variable $?.
Par exemple :
Et donc l'idée est de tester cette valeur, par exemple en faisant (j'ai pas regardé
Code : Tout sélectionner
mkswap /dev/hda3 --> en cas d'erreur s'interrompre
if [ $? -eq 0 ]; then
swapon /dev/hda3
else
echo erreur
fi
Code : Tout sélectionner
mkswap /dev/hda3 --> en cas d'erreur s'interrompre
if [ $? -eq 0 ]; then
swapon /dev/hda3
else
echo erreur
kill $$
fi
plutôt, non ? (au cas où le script ne s'arrête pas ici)
Re: [Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 17:38
par aldevar
Pour completer la réponse de schaars, je rajouterai quelques variables très pratique à connaitre comme par exemple les arguments d'une commandes.
$# ? nombre d'arguments de la commande
$1 ? Premier argument
$2 ? Second argument
etc...
$! renvoie le pid d'une commande en background. Par exemple :
Code : Tout sélectionner
[aldevar@Fifou-Laptop Images]$ firefox &
[1] 548
[aldevar@Fifou-Laptop Images]$ echo $!
548
[aldevar@Fifou-Laptop Images]$
Plus d'info ici
Re: [Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 17:42
par schaars
mathieuI a écrit :
Code : Tout sélectionner
mkswap /dev/hda3 --> en cas d'erreur s'interrompre
if [ $? -eq 0 ]; then
swapon /dev/hda3
else
echo erreur
kill $$
fi
plutôt, non ? (au cas où le script ne s'arrête pas ici)
Oui, on peut faire un exit ou un return si on est dans une fonction. Ça dépend du script, j'ai juste donné l'idée.
Re: [Script shell] Un petit cours de bash ?
Publié : sam. 08 août 2009, 18:00
par Murzan
Merci pour vos réponses !
Cela m'a permis de compléter mon script qui marche maintenant parfaitement !
Cordialement,
Murzan