#1 Le 18/06/2010, à 18:04
- Caocoa
Actions conditionnée au succès ou à l'échec d'aria
Bonjour !
Je cherche une astuce qui me permette d'exécuter comS ou comE en fonction du succès ou de l'échec d'une commande COM.
Par exemple, j'utilise un programme pour encoder une vidéo en un format. Si ça réussit j'affiche sur ma console "ok, réussi" et si ca bogue je renvoie à un tuto internet.
Une manière de contourner le problème serait de chainer des commandes, par exemple
COM && comS
mais comment faire pour incorporer comE ?
On pourrait aussi utiliser un script, mais je ne vois pas quoi utiliser.
Qui pourrait m'indiquer comment faire ?
Bonnes vacances, bon bac !
P.S. : je sais que le titre est nul mais il faut moins de 70 caractères et c'est le seul qui me passait par la tête.
Dernière modification par Caocoa (Le 18/06/2010, à 23:30)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#2 Le 18/06/2010, à 19:00
- nesthib
Re : Actions conditionnée au succès ou à l'échec d'aria
commande_initiale && commande_si_succes || commande_si_echec
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#3 Le 18/06/2010, à 19:55
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Pas mal !
Quelle maitrise du shell ! Quelle puissance dans la ligne de commande !
Et si j'ai aria par exemple à la place de COM comment récupérer l'état de réussite ?
Est-ce que quelqu'un sait comment récupérer le statut d'aria2C ? le manuel indique plusieurs retours possible, mais ou les trouver ?
Dernière modification par Caocoa (Le 18/06/2010, à 20:33)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#4 Le 18/06/2010, à 20:34
- Totor
Re : Actions conditionnée au succès ou à l'échec d'aria
Bonsoir,
commande_initiale && commande_si_succes || commande_si_echec
Ce n'est pas tout à fait exacte.
En effet, commande_si_echec sera également exécutée si commande_si_succes est en échec.
Pour exemple :
$[ 1 -eq 1 ] && [ 1 -eq 0 ] || echo 'pas de bol !'
pas de bol !
-- Lucid Lynx --
Hors ligne
#5 Le 18/06/2010, à 20:40
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Merci de ta précision Totor.
On peut donc vraiment assimiler l'opérateur && à un ET logique.
Mais pour appliquer cela j'aurai besoin d'éxécuter un gestionnaire de téléchargement qui s'apelle aria2c (ou aria), puis récupérer son "exit statut" et en fonction de ce dernier agir de telle ou telle manière.
Dernière modification par Caocoa (Le 18/06/2010, à 20:41)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#6 Le 21/06/2010, à 13:42
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Up
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#7 Le 21/06/2010, à 14:03
- nesthib
Re : Actions conditionnée au succès ou à l'échec d'aria
tu as tout ce qu'il te faut là, non ?
le && n'agit pas comme un OU logique mais plutôt comme un if ; then :
si tu veux faire simple
if aria; then
…
else
…
fi
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#8 Le 21/06/2010, à 15:01
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Pour la théorie oui, mais quand aria bug la commande d'échec ne s'effectue pas.
Pour contourner le problème il faudrait un truc comme ça :
Exécuter aria ;
Récupérer le statut de fin.
Si statut = 0
alors ok : faire ceci ;
Sinon
faire cela ;
Mais je ne sais pas comment récupérer ce statut ;( Le manuel renvoie :
EXIT STATUS
Because aria2 can handle multiple downloads at once, it encounters lots of errors in a session. aria2 returns the following exit status based on the last error encountered.
0 If all downloads are successful.
1 If an unknown error occurs.
2 If time out occurs.
3 If a resource is not found.
4 If aria2 sees the specfied number of "resource not found" error. See --max-file-not-found option).
5 If a download aborts because download speed is too slow. See --lowest-speed-limit option)
6 If network problem occurs.
7 If there are unfinished downloads. This error is only reported if all finished downloads are successful and there are unfinished downloads in a queue when aria2 exits by pressing Ctrl-C by an user or sending TERM or INT signal.
8 If server does not support resume when resume is required to complete download.Note
An error occurred in a finished download will not be reported as exit status.
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#9 Le 21/06/2010, à 15:05
- AnsuzPeorth
Re : Actions conditionnée au succès ou à l'échec d'aria
Bjr,
Exécuter aria ; Récupérer le statut de fin. Si statut = 0 alors ok : faire ceci ; Sinon faire cela ;
C'est exactement ce que nesthib t'a donné ... Tu as essayé ?
Si tu veux récupérer la sortie de la commande
commande
sortie=$?
Dernière modification par AnsuzPeorth (Le 21/06/2010, à 15:07)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#10 Le 21/06/2010, à 15:07
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Je ne peux pas !
Sinon j'aurai essayé ! Je ne sais pas comment on fait pour récupérer le statut
Ah ; je ne sais pas si tu as rajouté sortie=$ en edit. Je ne l'avais pas vu la première fois.
Comment s'en sert-on ?
J'ai essayé
aria2c http://www.*.fr && sortie=$?
aria2c http://www.*.fr
sortie=$?
aria2c http://www.*.fr
sortie=$1
aria2c http://www.*.fr
sortie=$
mais rien ne sort. Tu peux m'aider (encore une fois ) ?
EDIT :
1) Je précise que la commande donnée à aria retourne une erreur.
2) Fusion de deux messages pour éviter le double-post
Dernière modification par Caocoa (Le 21/06/2010, à 15:17)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#11 Le 21/06/2010, à 15:18
- AnsuzPeorth
Re : Actions conditionnée au succès ou à l'échec d'aria
Je ne peux pas !
Sinon j'aurai essayé ! Je ne sais pas comment on fait pour récupérer le statut
La solution de nesthib est la bonne.
if aria2c http://www.*.fr; then
action si ok
else
action si no ok
fi
Pour récup la sortie
aria2c http://www.*.fr
sortie=$?
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#12 Le 21/06/2010, à 15:36
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Merci de vous occuper si rapidement de mon cas
C'est bien à écrire dans un script ! Je testais directement en console : c'est pour ça que je ne comprenais pas
J'écris en console
sh ARIA
où ARIA est un fichier qui contient :
aria2c http://www.*.fr ;
sortie=$? ;
echo sortie
if sortie=0
then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi ;
Ca me renvoie
2010-06-21 16:34:37.040570 ERROR - CUID#6 - Téléchargement stoppé;. URI=http://www.*.fr
Exception: [AbstractCommand.cc:195] URI=http://www.*.fr
-> [AbstractCommand.cc:493] CUID#6 - La résolution du nom pour www.*.fr a échoué:Domain name not found
Résultats du téléchargement:
gid|stat|avg speed |path/URI
===+====+===========+===========================================================
1| ERR| n/a|http://www.*.fr
Légende du statut:
(ERR):error occurred.
aria2c va recommencer ce téléchargement si le transfert est relancé.
En cas d'érreurs, merci de lire le fichier log. Voir l'option '-l' pour plus d'informations.
sortie
Yahou !
A moitié bon, ou à moitié faux, ça dépend…
EDIT : Désolé de ces longs messages…
J'ai modifié ARIA :
aria2c http://www.*.fr
sortie=$?
echo sortie
if sortie = 0
then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi ;
et ça me renvoie
caocoa@C40C04:~$ sh ARIA
2010-06-21 16:38:09.435214 ERROR - CUID#6 - Téléchargement stoppé;. URI=http://www.*.fr
Exception: [AbstractCommand.cc:195] URI=http://www.*.fr
-> [AbstractCommand.cc:493] CUID#6 - La résolution du nom pour www.*.fr a échoué:Domain name not found
Résultats du téléchargement:
gid|stat|avg speed |path/URI
===+====+===========+===========================================================
1| ERR| n/a|http://www.*.fr
Légende du statut:
(ERR):error occurred.
aria2c va recommencer ce téléchargement si le transfert est relancé.
En cas d'érreurs, merci de lire le fichier log. Voir l'option '-l' pour plus d'informations.
sortie
ARIA: 9: sortie: not found
Paglop :/
J'ai essayé en mettant http://www.google.fr en argument d'aria donc ca aurait dû me renvoyer "Yahou !" mais non :
caocoa@C40C04:~$ sh ARIA
2010-06-21 16:39:34.988282 NOTICE - Téléchargement terminé: /home/caocoa/index.html
Résultats du téléchargement:
gid|stat|avg speed |path/URI
===+====+===========+===========================================================
1| OK| n/a|/home/caocoa/index.html
Légende du statut:
(OK):download completed.
sortie
ARIA: 9: sortie: not found
Paglop :/
Problème de variable ?
Dernière modification par Caocoa (Le 21/06/2010, à 15:43)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#13 Le 21/06/2010, à 15:48
- AnsuzPeorth
Re : Actions conditionnée au succès ou à l'échec d'aria
Bon, pour commencer, je pense qu'un peut de lecture sur les scripts bash ne te ferais pas de mal ....
http://abs.traduc.org/abs-5.3-fr/index.html
Sinon, utilse ce que nesthib t'as proposé, c'était le plus simple ... (ca fait que 3 fois que je le dis )
if aria2c http://www.*.fr; then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi
Sinon, pour faire comme tu veux (avec les = 0)
aria2c http://www.*.fr
sortie=$?
echo $sortie
if [[ "$sortie" == 0 ]]
then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#14 Le 21/06/2010, à 15:51
- nesthib
Re : Actions conditionnée au succès ou à l'échec d'aria
pour comprendre un peu mieux ce que je t'ai proposé plus haut essaye de lancer (et comprendre) ce script :
echo test1
touch fichier_qui_existe
if ls fichier_qui_existe; then
echo le fichier existe la commande1 est lancée
else
echo le fichier n\'existe pas la commande2 est lancée
fi
echo test2
if ls fichier_qui_n_existe_pas_et_declenche_une_erreur; then
echo le fichier existe la commande1 est lancée
else
echo le fichier n\'existe pas la commande2 est lancée
fi
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#15 Le 21/06/2010, à 16:15
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
C'est sûr qu'il y a une différence de niveau…
Il faudra que j'aille voir plus souvent le lien de la signature de AnsuzPeorth.
Sinon pour répondre à AnsuzPeorth cela fait peut-être trois fois que tu me le dit mais comme je ne savais pas que les = 0 pouvaient être sous-entendus, j'avais peu de chances de comprendre.
Heureusement que j'ai deux mois de vacances ! Go to Site du Zéro parce que visiblement il n'y a plus que ça pour moi
Mes malheurs continuent : quand j'entre
aria2c http://www.google.fr ;
sortie=$?
echo $sortie ;
if [[ "$sortie" == 0 ]]
then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi
il me renvoie :
caocoa@C40C04:~$ sh ARIA
2010-06-21 17:32:11.426581 NOTICE - Téléchargement terminé: /home/caocoa/index.html
Résultats du téléchargement:
gid|stat|avg speed |path/URI
===+====+===========+===========================================================
1| OK| n/a|/home/caocoa/index.html
Légende du statut:
(OK):download completed.
0
ARIA: 9: [[: not found
Paglop :/
Bizarre Pourquoi Aria s'amuse-t-il à considérer [[ comme argument alors qu'il y a plusieurs ; et un if ?
J'ai même mis "aria2c bla" dans un fichier et la suite des instructions dans un autre mais ça n'a pas marcher.
D'autre part je pense que pour généraliser le truc on peut entrer sh ARIA adresse et remplacer dans le code l'adresse $1, non ?
Dernière modification par Caocoa (Le 21/06/2010, à 16:56)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#16 Le 21/06/2010, à 17:25
- nesthib
Re : Actions conditionnée au succès ou à l'échec d'aria
t'es têtu hein… pourquoi tu t'obstines avec les [[ ]] alors qu'un if commande suffit amplement ?
sinon que te donne :
aria2c http://www.google.fr ;
echo $?
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#17 Le 21/06/2010, à 17:39
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Le retour de
aria2c http://www.google.fr ;
echo $?
est :
caocoa@C40C04:~$ sh ARIA-1
2010-06-21 18:38:37.226429 NOTICE - Le fichier existe déjà. Renommé en /home/caocoa/index.html.
2010-06-21 18:38:37.286108 NOTICE - Téléchargement terminé: /home/caocoa/index.html.
Résultats du téléchargement:
gid|stat|avg speed |path/URI
===+====+===========+===========================================================
1| OK| n/a|/home/caocoa/index.html.9
Légende du statut:
(OK):download completed.
0
La solution que tu proposes marche bien :
if aria2c http://www.*.fr
then
echo "Yahou !" ; # action si ok
else
echo "Paglop :/" ; # action si no ok
fi
renvoie "Yahou !" si l'adresse est correcte et "Paglop " sinon.
Mais si par exemple je veux associer une action au statut 1 ou 2, ne fait comment ? J'ai essayé
if aria2c http://www.*.fr -1
…
avec la commande d'aria entouré ou non de [[ ]] (encore eux !) mais que dalle ! le shell m'envoie paître
Dernière modification par Caocoa (Le 21/06/2010, à 18:05)
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne
#18 Le 21/06/2010, à 19:09
- nesthib
Re : Actions conditionnée au succès ou à l'échec d'aria
rapidos
ta_commande
case $? in
0) echo commande réussie ;;
1) echo erreur de type 1 ;;
2) echo erreur de type 2 ;;
*) echo autre erreur ;;
esac
GUL Bordeaux : Giroll – Services libres : TdCT.org
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ᴉsdn
Hors ligne
#19 Le 21/06/2010, à 20:54
- Caocoa
Re : Actions conditionnée au succès ou à l'échec d'aria
Puissant le bash ! Je ne pensais pas que le switch étais si simple à mettre en œuvre.
[url=http://[Merci de relire les règles]/29k82ap]Ma configuration[/url]
[url=http://[Merci de relire les règles]/2749u6z]l'Hadopi[/url] : l'Homme à Abattre Détesté Ouvertement Par tout Internaute
Une solution rationnelle proposée : l'infolibéralisme (ce n'est pas moi)
Hors ligne