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.