Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/04/2023, à 20:11

MichelZ

[Résolu] Mettre des variables dans une commande YAD

Bonjour les champions du script smile,
J'essaie de mettre des valeurs calculées (liste1 et liste2) dans une commande YAD :

liste1='2 18 21 30 45';
liste2='6 11';
#
boutons='--button="<b>NOUVEAU TIRAGE</b> (Entrée)":0 --button=gtk-cancel:1'
texte='--text="<b><big><big><big>'${liste1}' – '${liste2}'</big></big></big></b>"'
#
eval 'yad --undecorated --borders=20 --buttons-layout=center --text-align=center '$boutons' '$texte
reponse=$?

Avec eval ça marche, mais j'aimerais utiliser directement une commande du genre :

reponse=$(yad --undecorated --borders=20 --buttons-layout=center --text-align=center $boutons $texte)

et ça, ça ne marche pas.
Existe t-il une syntaxe correcte pour ça ?
Merci d'avance smile

Dernière modification par MichelZ (Le 11/04/2023, à 21:54)

Hors ligne

#2 Le 11/04/2023, à 20:58

Beta Pictoris

Re : [Résolu] Mettre des variables dans une commande YAD

Bonsoir smile

Comme ceci ? :

#!/usr/bin/env bash

# set -x

liste1='2 18 21 30 45'

liste2='6 11'

opt='--undecorated --borders=20 --buttons-layout=center --text-align=center --button=gtk-cancel:1'

boutons='--button=<b>NOUVEAU TIRAGE</b> (Entrée):0'

texte='--text=<b><big><big><big>'${liste1}' – '${liste2}'</big></big></big></b>'

reponse=$(yad $opt "$boutons" "$texte")

echo $?

Dernière modification par Beta Pictoris (Le 11/04/2023, à 21:01)

Hors ligne

#3 Le 11/04/2023, à 21:51

MichelZ

Re : [Résolu] Mettre des variables dans une commande YAD

Ça marche ! Merci beaucoup !
Mais ça inverse les 2 boutons à l'affichage (puisque "cancel" est placé avant "entrée")
Donc j'ai trouvé une autre solution, c'est de remplacer dans tous les libellés ("NOUVEAU TIRAGE", etc.) les espaces par des espaces insécables (Maj-AltGr-espace) :

liste1='2 18 21 30 45';
liste2='6 11';
#
debut='--undecorated --borders=20 --buttons-layout=center --text-align=center --button=<b>NOUVEAU TIRAGE</b> (Entrée):0 --button=gtk-cancel:1'
texte='--text=<b><big><big><big>'${liste1}' – '${liste2}'</big></big></big></b>'
#
reponse=$(yad $debut $texte)

Bon, ça n'est pas visible ci-dessus, mais ça marche bien.

Hors ligne

#4 Le 11/04/2023, à 21:57

kamaris

Re : [Résolu] Mettre des variables dans une commande YAD

Comme ça ce serait mieux, puisque tu utilises bash (il y a des tableaux) :

liste1='2 18 21 30 45'
liste2='6 11'
opt=('--undecorated' '--borders=20' '--buttons-layout=center' '--text-align=center')
boutons=('--button=<b>NOUVEAU TIRAGE</b> (Entrée):0' '--button=gtk-cancel:1')
texte="--text=<b><big><big><big>'${liste1}' – '${liste2}'</big></big></big></b>"
reponse=$(yad "${opt[@]}" "${boutons[@]}" "$texte")

En ligne

#5 Le 12/04/2023, à 10:34

MichelZ

Re : [Résolu] Mettre des variables dans une commande YAD

Ah oui, ça marche aussi. Merci kamaris !

Hors ligne