#1 Le 03/02/2013, à 14:40
[Resolu]Bash ce servir de la dernière erreur pour faire une tache.
Bonjour à la communauté.
Je recherche a faire un test "IF" avec le résultat de l'exit de la commande précédente.
Commade précédente ........
exit 0 ou exit 5 ( pour une erreur)
if [ 0 = $2 ]
then
Tout est OK
else
mv le dossier dans un répertoire car il y a un problème
fi
Merci à toute les personnes qui nous aide à régler tous nos petits soucis.
Dernière modification par baba00000000 (Le 03/02/2013, à 19:00)
http://racketiciel.info/petition/ Pétition qui ferra peut être changé les installations sur les pc vendu en France.
Hors ligne
#2 Le 03/02/2013, à 15:34
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
le code d'erreur de la commande précédente est dan la variable "$?".
Ça donne donc :
la_commande_qui_va_bien
if [ $? -eq 0 ]
then
echo "ok"
else
mv blablamachintruc
fiSébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr
En ligne
#3 Le 03/02/2013, à 16:44
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
Un grand merci à toi tiramiseb.
C'est bien ce que je cherchais. Vais mettre résolu.
http://racketiciel.info/petition/ Pétition qui ferra peut être changé les installations sur les pc vendu en France.
Hors ligne
#4 Le 05/02/2013, à 02:57
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
En fait le test sur $? est un peu archaïque et tu peux directement accéder au code de retour d'une commande. Prenons l'exemple de grep.
# on peut utiliser les opérateurs &&/||
grep -q root /etc/passwd && echo 'ok' || echo 'pas ok'
# ou encore if
if grep -q root /etc/passwd
then
echo 'ok'
else
echo 'pas ok'
fi
# ce qui revient à :
grep -q root /etc/passwd
if [ $? -eq 0 ]
then
echo 'ok'
else
echo 'pas ok'
fi GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#5 Le 05/02/2013, à 03:08
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
OUI, bien sûr, mais si la commande a plusieurs codes de retour en fonction de l'erreur, y a pas le choix, faut utiliser $?.
ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor, OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)
Hors ligne
#6 Le 05/02/2013, à 03:20
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
Oui, mais dans ce cas autant utiliser un case, c'est surtout le « if [ $? -eq 0 ] » que je trouve archaïque ![]()
grep -q root /etc/passwd
case $? in
0) echo 'tout va bien' ;;
1) echo 'motif non trouvé' ;;
2) echo 'fichier inexistant' ;;
*) echo 'autre erreur' ;;
esacGUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#7 Le 05/02/2013, à 08:09
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
Archaïque toi-même ! ![]()
... pas ma faute si j'ai appris à scripter au XXme siècle ![]()
Cela dit, selon les cas je trouve ça plus lisible : chaque opération sur une ligne !
Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr
En ligne
#8 Le 05/02/2013, à 16:36
Re : [Resolu]Bash ce servir de la dernière erreur pour faire une tache.
@tiramiseb : moi aussi j'ai appris au XXe, mais que veux-tu, il faut vivre avec son temps ![]()
pour les structures case, tu peux très bien sauter des lignes et mettre chaque commande sur sa propre ligne ![]()
case … in
a)
commande1
commande2 ;;
b)
…[/chipotage]
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [Resolu]Bash ce servir de la dernière erreur pour faire une tache.