Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

huit_six a écrit :

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

safe93 a écrit :

bonjour
Je n'utilise pas le 2>
un simple

tacommande > 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