#1 Le 30/07/2012, à 14:03
- sergeG75018
[résolu] fermer une boite de dialogue zenity sans lancer le script
Bonjour.
il y-a déjà pas mal de temps que je me suis fais un petit script avec une boite de dialogue zenity entry
celui-ci marche très bien mais je me suis aperçu par hasard qu'en appuyant sur annuler (ainsi qu'en fermant la fenêtre) cela lançait quand même le script.
J'ai beau chercher dans les tutos et ailleurs je ne trouve pas comment annuler le lancement du processus.
une petite piste serait la bien venue.
merci.
edit modo : passage en [résolu]
Dernière modification par nesthib (Le 30/07/2012, à 16:20)
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne
#2 Le 30/07/2012, à 14:32
- toulipe
Re : [résolu] fermer une boite de dialogue zenity sans lancer le script
Bonjour,
Je m'étais fait la même remarque à propos de yad (un fork amélioré de zenity). Si vous voulez que votre script arrête de s'exécuter lorsque vous cliquez sur "annuler" ou fermez la fenêtre, il faut l'indiquer explicitement dans le code. Regardes les codes d'erreurs associés à ces actions dans la page de manuel de zenity. Pour yad - et sans doute pour zenity aussi -, il faut écrire :
case $? in
1|252)
exit ;;
esac
après avoir invoqué la fenêtre de dialogue
1 est le code d'erreur par défaut pour "annuler", et 252 indique que la fenêtre a été fermée.
PS : Si vous voulez essayer yad, vous trouverez un paquet précompilé (par moi-même) ici
Dernière modification par toulipe (Le 30/07/2012, à 14:41)
Hors ligne
#3 Le 30/07/2012, à 14:59
- Bousky
Re : [résolu] fermer une boite de dialogue zenity sans lancer le script
Pourquoi se limiter aux codes d'erreurs 1 et 252 (qui ne correspond à rien pour zenity) plutôt que de prendre on compte toutes les erreurs possibles ?
Une autre manière :
if ! resultat=$(zenity ...) ; then
...
exit
fi
Dernière modification par Bousky (Le 30/07/2012, à 15:00)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#4 Le 30/07/2012, à 15:34
- toulipe
Re : [résolu] fermer une boite de dialogue zenity sans lancer le script
Pourquoi se limiter aux codes d'erreurs 1 et 252 (qui ne correspond à rien pour zenity) plutôt que de prendre on compte toutes les erreurs possibles ?
Parce qu'on ne veut pas nécessairement qu'il se produise la même chose lorsqu'on clique sur "annuler" ou qu'on ferme la fenêtre. Cependant, si zenity ne supporte pas les codes d'erreurs...
Hors ligne
#5 Le 30/07/2012, à 15:45
- sergeG75018
Re : [résolu] fermer une boite de dialogue zenity sans lancer le script
bonjour et merci de vos réponses.
En fait j'ai désossé un script (j'y connait pas grand chose)
et j'ai trouvé ça.
rech=$(zenity --entry --width 600 --height 50 --title="taper votre recherche" --text="quel fichier voulez-vous chercher ")
case $? in
0)
locate "$rech" > .locate.txt && gedit .locate.txt
;;
1)
exit 2;;
-1)
exit 1;;
esac
qui fonctionne parfaitement.
merci encore.
Ironie, sarcasme ou cynisme? Je ne sais plus
Hors ligne