Ce qui ne concerne ni le forum ni des problèmes
Murzan
archer
Messages : 123 Inscription : sam. 06 juin 2009, 14:29
Message
par Murzan » sam. 08 août 2009, 15:34
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 !
schaars
Hankyu
Messages : 44 Inscription : mer. 27 août 2008, 19:59
Message
par schaars » sam. 08 août 2009, 16:01
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
eeepc 1005ha-h + Archlinux + awesome = 9h30 d'autonomie !
ceci n'est pas un easter egg !
mathieuI
Daikyu
Messages : 55 Inscription : jeu. 19 févr. 2009, 13:08
Message
par mathieuI » sam. 08 août 2009, 17:35
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)
\_o< KOIN !!
aldevar
archer de cavalerie
Messages : 172 Inscription : sam. 25 nov. 2006, 10:55
Localisation : Cote d'armor
Message
par aldevar » sam. 08 août 2009, 17:38
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
schaars
Hankyu
Messages : 44 Inscription : mer. 27 août 2008, 19:59
Message
par schaars » sam. 08 août 2009, 17:42
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.
eeepc 1005ha-h + Archlinux + awesome = 9h30 d'autonomie !
ceci n'est pas un easter egg !
Murzan
archer
Messages : 123 Inscription : sam. 06 juin 2009, 14:29
Message
par Murzan » sam. 08 août 2009, 18:00
Merci pour vos réponses !
Cela m'a permis de compléter mon script qui marche maintenant parfaitement !
Cordialement,
Murzan