[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: