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

Bousky a écrit :

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