#1 Le 15/11/2013, à 17:04
- popol06
[Résolu] yad et récupérationde variable
Bonjour,
J'ai un soucis où je m'arrache les cheveux, voici un script, réalisé avec yad (installé via le ppa) et testé aussi en version 0.24 sur une archlinux.
#!/bin/bash
while true
do
action=$(yad --mouse --title="Actions" --form \
--field="Server1:CB" "Action1!Action2!Action3!Action4" \
--field="Server2:CB" "Action1!Action2!Action3!Action4" \
--field="Server3:CB" "Action1!Action2!Action3!Action4" \
--field="Server4:CB" "Action1!Action2!Action3!Action4" \
--button="Retour:0" \
--button="Quitter:1" \
--button="Server1:2" \
--button="Server2:3" \
--button="Server3:4" \
--button="Server4:5")
case $? in
0)
break;;
1)
exit;;
2)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 1)) "for server1";;
3)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 2)) "for server2";;
4)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 3)) "for server3";;
5)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 4)) "for server4";;
esac
done
Comme on peut le voir dans le "case", si je clique sur un des bouton "Server", ça doit afficher la variable "action" et dans un deuxieme temps, un petit coup de cut pour prendre ce que je souhaite.
Tout fonctionne impeccable avec les boutons "Server1" et "Server3", mais la variable "action" reste désespérément vide en cliquant sur les boutons "Server2" et "Server4".... comprends pas....
exemple en cliquant sur "Server1" on obtient :
Action1|Action1|Action1|Action1|
Action1 for server1
ce qui est normal
Par contre "Server2", on a :
for server2
là pas normal
je sèche, est-ce que je loupe un truc....
Dernière modification par popol06 (Le 15/11/2013, à 22:45)
Hors ligne
#2 Le 15/11/2013, à 22:34
- metalux
Re : [Résolu] yad et récupérationde variable
Bonsoir, aucune idée de la raison mais le code suivant semble fonctionner:
#!/bin/bash
while true
do
action=$(yad --mouse --title="Actions" --form \
--field="Server1:CB" "Action1!Action2!Action3!Action4" \
--field="Server2:CB" "Action1!Action2!Action3!Action4" \
--field="Server3:CB" "Action1!Action2!Action3!Action4" \
--field="Server4:CB" "Action1!Action2!Action3!Action4" \
--button="Retour:0" \
--button="Quitter:1" \
--button="Server1:2" \
--button="Server2:4" \
--button="Server3:6" \
--button="Server4:8")
case $? in
0)
break;;
1)
exit;;
2)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 1)) "for server1";;
4)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 2)) "for server2";;
6)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 3)) "for server3";;
8)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 4)) "for server4";;
esac
done
Hors ligne
#3 Le 15/11/2013, à 22:45
- popol06
Re : [Résolu] yad et récupérationde variable
Effectivement merci, ça fonctionne comme ceci, l'erruer doit être de l'ordre du bug.... ou bien autre chose qui me dépasse, en tout cas merci je vais continuer avec ça...!
Hors ligne
#4 Le 15/11/2013, à 22:56
- metalux
Re : [Résolu] yad et récupérationde variable
J'ai trouvé autre chose dans le man:
il te manque l'option --always-print-result
#!/bin/bash
while true
do
action=$(yad --mouse --always-print-result title="Actions" --form \
--field="Server1:CB" "Action1!Action2!Action3!Action4" \
--field="Server2:CB" "Action1!Action2!Action3!Action4" \
--field="Server3:CB" "Action1!Action2!Action3!Action4" \
--field="Server4:CB" "Action1!Action2!Action3!Action4" \
--button="Retour:0" \
--button="Quitter:1" \
--button="Server1:2" \
--button="Server2:3" \
--button="Server3:4" \
--button="Server4:5")
case $? in
0)
break;;
1)
exit;;
2)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 1)) "for server1";;
3)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 2)) "for server2";;
4)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 3)) "for server3";;
5)
echo "$action"
echo $(echo $(echo "$action" | cut -d\| -f 4)) "for server4";;
esac
done
Et sur cette page
by default yad prints result only for buttons with even return codes. for changing this behavior add --always-print-result option or use only evens return codes
Pas tout compris mais ça semble être en rapport.
Hors ligne
#5 Le 18/11/2013, à 12:41
- popol06
Re : [Résolu] yad et récupérationde variable
Super, fonctionne aussi merci
Hors ligne