#1 Le 08/05/2007, à 12:14
- Jean-lux
Aide pour la réalisation d'un script shell avec Zenity
Bonjours,
Je voudrais savoir comment renvoyer les erreurs qui apparaissent dans le terminal dans l'interface graphique fait avec zenity ?
EXEMPLE :
Le terminal renvoie :
E: Impossible de verrouiller /var/lib/apt/lists/lock - open (11 Ressource temporairement non disponible)
E: Impossible de verrouiller le répertoire de liste
Je voudrais alors que Zenity affiche un message d'erreur (graphique) dans lequel il y aura écrit :
"E: Impossible de verrouiller le répertoire de liste", veuillez-vous assurer qu'aucune application utilisant apt ne soit en cours d'exécution (Synaptic, apt-get, aptitude, adept etc...).
Merci de votre aide.
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#2 Le 11/05/2007, à 15:01
- huit_six
Re : Aide pour la réalisation d'un script shell avec Zenity
réponse courte:
Il faut rediriger le fichier d'erreur, ça se fait comme pour la sortie standard sauf qu'il faut utiliser '2>' au lieu de '>'
réponse longue:
'n>' permet de rediriger un fichier ou n est un entier correspondant à un numero servant à repérer un fichier.
Or l'entrée standard a pour numero 0, la sortie: 1 et l'erreur standard: 2.
En fait '>' est équivalent à '1>'.
Le même genre de commentaires peuvent se faire sur '<' '>>' et '<<'.
En espérant t'avoir aidé
PS: Si y'a des pros qui détectent une erreur, n'hésitez pas à le dire, je suis un profane...
Dernière modification par huit_six (Le 11/05/2007, à 15:03)
Hors ligne
#3 Le 11/05/2007, à 16:01
- Jean-lux
Re : Aide pour la réalisation d'un script shell avec Zenity
réponse courte:
Il faut rediriger le fichier d'erreur, ça se fait comme pour la sortie standard sauf qu'il faut utiliser '2>' au lieu de '>'réponse longue:
'n>' permet de rediriger un fichier ou n est un entier correspondant à un numero servant à repérer un fichier.
Or l'entrée standard a pour numero 0, la sortie: 1 et l'erreur standard: 2.
En fait '>' est équivalent à '1>'.
Le même genre de commentaires peuvent se faire sur '<' '>>' et '<<'.En espérant t'avoir aidé
PS: Si y'a des pros qui détectent une erreur, n'hésitez pas à le dire, je suis un profane...
Tu peut me montrer un exemple ?
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#4 Le 11/05/2007, à 16:13
- huit_six
Re : Aide pour la réalisation d'un script shell avec Zenity
heu... par exemple:
rm qsdfze devrait planter (à moins que manque de bol, tu aie justement un fichier nommé qsdfze, mais on ne sait jamais, fais gaffe hein?:))
nicolas@afia:~$ rm qsdfze
rm: ne peut enlever `qsdfze': Aucun fichier ou répertoire de ce type
n'étant pas redirigée, l'erreur standard s'affiche sur le terminal, on va la récupérer et la mettre dans un fichier nommé log:
nicolas@afia:~$ rm qsdfze 2> log
nicolas@afia:~$
et on vérifie le contenu du fichier log:
nicolas@afia:~$ cat log
rm: ne peut enlever `qsdfze': Aucun fichier ou répertoire de ce type
nicolas@afia:~$
Hors ligne
#5 Le 11/05/2007, à 16:18
- kuri
Re : Aide pour la réalisation d'un script shell avec Zenity
t as fait des posts partout pour ca ?!
j ai deja repondu sur un de tes posts ... je vais voir si je le retrouve.
Hors ligne
#6 Le 11/05/2007, à 16:20
- kuri
Re : Aide pour la réalisation d'un script shell avec Zenity
http://forum.ubuntu-fr.org/viewtopic.php?id=116970
tout en bas
Hors ligne
#7 Le 11/05/2007, à 16:21
- kuri
Re : Aide pour la réalisation d'un script shell avec Zenity
bonjour
Je n'utilise pas le 2>
un simpletacommande > log ou si je veux que cela se rajoute à la suite tacommande >> log
et tu as un fichier log dans ton home contenant le résultat de la commande.
Ce qui est surprenant, c'est que la commande avec 2>, crée bien le fichier, mais il est vide (dans mon test, c'etait un ls -la de mon home, donc forcément pas vide )
le simple > va remonter les echo/print/printf
le 2> va remonter les messages d erreurs.
fais un "ls -al /sdfjdfsklsdfjlfds" tu auras une montee d erreur, et donc le 2> va remonter l info
et pour tout log dans le meme fichier, c est "&>"
Dernière modification par kuri (Le 11/05/2007, à 16:22)
Hors ligne
#8 Le 11/05/2007, à 16:54
- Jean-lux
Re : Aide pour la réalisation d'un script shell avec Zenity
J'ai résolu partiellement ce porblème, mais maintenant, j'en est un autre :
Comment appliquer les actions s'un menu créer avec zenity ?
Ex.:
J'ai créer un menu avec zenity qui comporte ces actions :
Blabla
Tralala
Quicquicquic
Comment faire pour exécuter ces commandes lorsque que l'on sélectionne l'action dans le menu :Blabla -> sudo apt-get update
Tralala -> sudo apt-get upgrade -y
Quiquicqui -> sudo apt-get autoremove
Car pour l'instant, quand je sélectionne un ou des action(s) dans le menu, rien ne se passe.
Dernière modification par Jean-lux (Le 11/05/2007, à 16:54)
Un jour... Le manchot cassera la fenêtre !
Remboursez votre forfait non utilisé sur http://goo.gl/uQyCq NOFAKE.
Hors ligne
#9 Le 11/05/2007, à 17:05
- huit_six
Re : Aide pour la réalisation d'un script shell avec Zenity
Par menu j'imagine que tu veux dire une liste?
Dans ce cas ta liste (il te faut une radiolist je pense) renvoi une valeur, (Blabla ou Tralala etc...), tu récupère cette valeur dans une variable, et ensuite, tu fais sois des tests imbriqués soit un case pour que ton script exécute l'action correspondante
Comme ton script est graphique, je te conseille d'utiliser gksudo plutot que sudo, sinon tu seras obligé de l'exécuter toujours en console.
[Edit]
Allez, comme je suis justement en train de bosser dessus, un petit exemple pour la route:
#!/bin/sh
RESULT=$(zenity --list --radiolist --column " " --column "Choix" TRUE Choix_1 FALSE Choix_2 FALSE Choix_3)
if [ $RESULT = "Choix_2" ]
then
zenity --info --text="Le choix 2 est un très bon choix."
else
zenity --info --text="Le $RESULT est moins cool."
fi
Dernière modification par huit_six (Le 11/05/2007, à 17:15)
Hors ligne