Re: Zenity - Case à cocher et récupération de variable.
Le 19/03/2018 à 12:52, G2PC a écrit :
> Le 19/03/2018 à 12:02, G2PC a écrit :
>> Bonjour, voilà une source " simple " dans le pastebin suivant.
>> Enregistrer le dans un fichier test.sh
>> Lancer avec sh test.sh
>> Zenity doit être installé.
>>
>> https://pastebin.com/jrMnEJxs
>>
>>
>> J'ai le problème suivant :
>>
>> Si je coche une seule case, alors, la valeur cochée est affichée
>> plusieurs fois dans le retour, lorsque j'écris les variables.
>> Si je coche deux cases, alors, seul les 2 valeurs cochées sont affichées
>> ( comportement correct attendu ).
>>
>> J'aimerais enfin, dans le meilleur des cas, récupérer les variables,
>> pour faire un INPUT vers une base de données.
>>
>> Merci de vos avis.
> Je reviens à un autre fonctionnement que j'avais déjà vu précédemment.
> Peut être que je dois plutôt faire comme cela :
>
> pays=$(zenity \
> --list \
> --checklist \
> --width="360" \
> --height="420" \
> --title="Raison sociale de l'entreprise." \
> --text "Raison sociale de l'entreprise." \
> --separator=":" \
> --column "Sélectionner" \
> --column "Pays" \
> FALSE TP_Allemagne \
> FALSE TP_Autriche \
> FALSE TP_Angleterre \
> FALSE TP_Belgique \
> FALSE TP_Bulgarie \
> FALSE TP_Chypre \
> FALSE TP_Croatie \
> FALSE TP_Danemark \
> FALSE TP_Ecosse \
> FALSE TP_Espagne \
> FALSE TP_Estonie \
> FALSE TP_Finlande \
> FALSE TP_France \
> FALSE TP_Grece \
> FALSE TP_Hongrie \
> FALSE TP_Irlande \
> FALSE TP_Irlande_de_Nord \
> FALSE TP_Italie \
> FALSE TP_Lettonie \
> FALSE TP_Lituanie \
> FALSE TP_Luxembourg \
> FALSE TP_Malte \
> FALSE TP_PaysBas \
> FALSE TP_Pays_de_Galles \
> FALSE TP_Pologne \
> FALSE TP_Portugal \
> FALSE TP_Republique_Tcheque \
> FALSE TP_Roumanie \
> FALSE TP_Slovaquie \
> FALSE TP_Slovenie \
> FALSE TP_Suede \
> FALSE TP_Suisse \
> FALSE TP_OTHER)
>
> # On récupère les valeurs cochées dans la liste de choix des pays :
> echo $pays
J'avance pour tenter de récupérer les multiples choix cochés.
En sh, j'ai trouvé cela, mais, pas très propre, car, la chaine est
réécrite à chaque recherche de valeur, dans le terminal. ( 33 valeurs de
pays à tester. )
#sh
echo "$pays" | grep TP_Allemagne && echo Allemagne || echo ko
echo "$pays" | grep TP_Angleterre && echo Angleterre || echo ko
Avec Bash, ça correspond parfaitement à mes attentes. Je peux tester une
valeur dans la chaine, je peux faire un echo de la valeur ( ou lancer
une commande SQL je suppose. )
#bash OK
All="TP_Allemagne"
[[ $pays =~ $All ]] && echo Allemagne || echo ko Allemagne
Ang="TP_Angleterre"
[[ $pays =~ $Ang ]] && echo Angleterre || echo ko Angleterre
J'aimerais encore, si possible, avoir l'équivalent, pour shell.
Reply to: