Donc levis59 propose :
zenity --list --checklist --separator="\n" \
--text "Choisir une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion > >(
while read ; do
[ "${REPLY}" == "Vélo" ] && zenity --info --text "Vous avez choisi vélo."
[ "${REPLY}" == "Voiture" ] && zenity --info --text "Vous avez choisi Voiture."
[ "${REPLY}" == "Avion" ] && zenity --info --text "Vous avez choisi Avion."
[ "${REPLY}" == "Noir" ] && zenity --info --text "Vous avez choisi noir."
[ "${REPLY}" == "Blanc" ] && zenity --info --text "Vous avez choisi Blanc."
[ "${REPLY}" == "Gris" ] && zenity --info --text "Vous avez choisi Gris."
done )
faire une boucle while juste pour 2 infos...
de plus j'ai simplifié car il y a 9 possibilités dans les checks (3 couleurs pour 3 vehicules)
pas sur que ce soit mieux que ce que propose Orion79 :
choice="$(zenity --list --checklist \
--text "Choisire une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" \
FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion )"
case $choice in
*"Vélo"* ) zenity --info --text "Vous avez choisi vélo." ;;
*"Voiture"* ) zenity --info --text "Vous avez choisi Voiture." ;;
*"Avion"* ) zenity --info --text "Vous avez choisi Avion." ;;
esac
case $choice in
*"Noir"* ) zenity --info --text "Vous avez choisi noir." ;;
*"Blanc"* ) zenity --info --text "Vous avez choisi Blanc." ;;
*"Gris"* ) zenity --info --text "Vous avez choisi Gris." ;;
esac
ou encore :
couleur=${choice%%|*}
locomotion=${choice##*|}
zenity --info --text "Vous avez choisi le moyen de locomotion : ${locomotion} de couleur : ${couleur}."
ca evite du code inutile, pas de boucle...