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 15/03/2008, à 23:13

weedfast

script zenity + if,elif etc

Voilà j'ai un petit souci avec ce script qui ne fonctionne pas  :

#!/bin/bash 

echo $(zenity --list --checklist --height=350 --width=250 \
    --title="Course" \
    --text="Choix des produits"\
    --column="" --column="" --column="Produits" \
    --hide-column=2 \
    --separator=" " \
    FALSE LAP "lapin"\
    FALSE POU "poulet"\ ) 
read PRO
if [ "$PRO" = "LAP" ]; then
{
zenity --info --title="Produit choisi" --text="Vous avez choisi un lapin"
}
elif [ "$PRO" = "POU" ]; then
{
zenity --info --title="Produit choisi" --text="Vous avez choisi un poulet"
}
else
{
zenity --info --title="Attention" --text="pfff"
}
fi
exit

Si vous avez une solution à me proposer, je suis preneur !! wink


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#2 Le 15/03/2008, à 23:22

Link31

Re : script zenity + if,elif etc

Enlève les {} wink

Hors ligne

#3 Le 15/03/2008, à 23:34

weedfast

Re : script zenity + if,elif etc

Ca ne change rien, enfin si : même  si je coche lapin ou poulet le script me renvoie à la boite de dialogue suivante :

zenity --info --title="Attention" --text="pfff"

Dernière modification par weedfast (Le 15/03/2008, à 23:35)


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#4 Le 17/03/2008, à 21:38

PPN

Re : script zenity + if,elif etc

Voila la réponse.

Par contre attention : si on coche lapin et poulet le resultat sera "lapin|poulet" et n'est donc pas géré par tes tests (ajouté dans mon code)
Dans ma réponse tu peux tout à faire changer Checklist par Radiolist si celà t'interesse : ça fonctionnera correctement.

Bon courrage pour la suite!

#!/bin/bash 

PRO=$(zenity --list --checklist --height=350 --width=250 \
	--text="Choix des produits" \
	--title="Course" \
	--column="" --column="Produits" \
	FALSE lapin \
	FALSE poulet) 

if [ $PRO = "lapin" ]; then
	zenity --info --title="Produit choisi" --text="Vous avez choisi un lapin"
elif [ $PRO = "poulet" ]; then
	zenity --info --title="Produit choisi" --text="Vous avez choisi un poulet"
elif [ $PRO = "lapin|poulet" ]; then
	zenity --info --title="Produit choisi" --text="Vous avez choisi un lapin et un poulet"
else
	zenity --info --title="Attention" --text="pfff"
fi
exit

Dernière modification par PPN (Le 17/03/2008, à 22:20)

Hors ligne

#5 Le 22/03/2008, à 00:52

Ras'

Re : script zenity + if,elif etc

cool smile j'en avais besoin aussi smile je regarde ça demain wink
Par contre, comment on fait pour vérifier que l'on a pas coché plusieurs cases dans le cas ou on à plus de deux choix dans la boite de dialogue ?

On doit pas faire toutes les possibilitées au moins ? O_o


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#6 Le 22/03/2008, à 01:10

PPN

Re : script zenity + if,elif etc

Raskal a écrit :

cool smile j'en avais besoin aussi smile je regarde ça demain wink
Par contre, comment on fait pour vérifier que l'on a pas coché plusieurs cases dans le cas ou on à plus de deux choix dans la boite de dialogue ?

On doit pas faire toutes les possibilitées au moins ? O_o

Je pense que le mieux est de faire un if pour chaque cas non-double (un pour lapin, un pour poulet  et un si rien dans l'exemple).
Mais au lieu de faire un simple if $resultat = "lapin" à mon avis il faut faire un truc du genre tester que le résultat de `echo $resultat | grep lapin` n'est pas vide : ceci gère à la fois les cas de réponse simple et multiple pour le lapin.

Il y a surement plus simple mais ça ne me vient pas à l'esprit ^^

Hors ligne

#7 Le 22/03/2008, à 10:35

Alain.g

Re : script zenity + if,elif etc

Raskal a écrit :

Par contre, comment on fait pour vérifier que l'on a pas coché plusieurs cases dans le cas ou on à plus de deux choix dans la boite de dialogue ?

Pour ne permettre qu'une sélection, il faut remplacer --checklist par --radiolist


Xubuntu Karmic !

Hors ligne

#8 Le 09/04/2008, à 19:54

weedfast

Re : script zenity + if,elif etc

Alain.g a écrit :
Raskal a écrit :

Par contre, comment on fait pour vérifier que l'on a pas coché plusieurs cases dans le cas ou on à plus de deux choix dans la boite de dialogue ?

Pour ne permettre qu'une sélection, il faut remplacer --checklist par --radiolist

Merci pour le --radiolist !!


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#9 Le 09/04/2008, à 20:23

Ras'

Re : script zenity + if,elif etc

Carrément !!!
big_smile


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#10 Le 21/04/2008, à 12:25

tarte en pion

Re : script zenity + if,elif etc

Bonjour, je faisais une recherche dur Google pour faire un script avec zenity --checklist et je suis tombé ici smile

Voici une solution que j'ai trouvée en modifiant un script :

#!/bin/bash


	choice="$(zenity --width=200 --height=150 --list --column "" --checklist --title="Que faut-il sauvegarder ?" \
	--column="" \
	FALSE do1 \
	FALSE do2)"

	case "${choice}" in
		*"do1"* )
		echo "hello1"
		;;
	esac

	case "${choice}" in
		*"do2"* )
		echo "hello2"
		;;
	esac

Comme ça, nul besoin de calculer toutes les combinaisons ! wink

Dernière modification par tarte en pion (Le 21/04/2008, à 13:50)

Hors ligne

#11 Le 21/04/2008, à 18:21

weedfast

Re : script zenity + if,elif etc

à tester ... j'avais tout de même trouver une "parade" avec l'option --radiolist.

Merci !!! big_smile


Mon blog : http://ubunblox.servhome.org/  --> Tutos, Astuces, etc...
Portable : Asus Eee PC
Desktop : Asus P4c800, Intel P4C 3Ghz,
Corsair twinx xms Cas 2 2*512,Nvidia 6800GT

Hors ligne

#12 Le 22/04/2008, à 06:41

smo

Re : script zenity + if,elif etc

#!/bin/bash


choice="$(zenity --width=200 --height=150 --list --column "" --checklist --title="Que faut-il sauvegarder ?" \
    --column="" \
    FALSE do1 \
    FALSE do2)"

case $choice in
      *"do1"*)
      echo "hello1"
      ;;
      *"do2"* )
      echo "hello2"
      ;;
esac

pourquoi deux case?

smile

++

Hors ligne

#13 Le 22/04/2008, à 08:27

tarte en pion

Re : script zenity + if,elif etc

Pour évaluer les deux cas séparément : avec un seul (tel que c'était dans le script d'origine que j'ai trouvé quelque part), c'est soit 1, soit 2, mais jamais 1 et 2. Or le but est d'avoir toutes les combinaisons possibles, surtout dans un script où la liste contient une dizaine d'élément ! wink

Hors ligne