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 03/06/2011, à 12:28

Hizoka

[resolu] zenity et variables à espace

Bonjour,

je rencontre un soucis :
- Soit une variable :

TEST='FALSE "oui oui"'

- Soit une fenetre zenity de type liste

zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non"

jusque là tout va bien, mais si je veux mixer les 2 :

zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" ${TEST}

ca ne passe plus...

après plein d'essaie... je viens vous demandez de l'aide.

Est-ce un bug ?

merci

Dernière modification par Hizoka (Le 03/06/2011, à 20:37)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 03/06/2011, à 13:25

Watael

Re : [resolu] zenity et variables à espace

salut

c'est, si je me souviens bien, dû au fait que le shell lit les quotes l'une après l'autre, et non comme des paires (comme des balises ouvrantes et fermantes en HTML).

soit tu passes par un tableau, soit par deux variables.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 03/06/2011, à 13:49

Hizoka

Re : [resolu] zenity et variables à espace

ouais mais là, c'est un exemple simple...

en imaginant que la variable contient une liste de fichiers, tes solutions ne sont plus utilisables.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 03/06/2011, à 14:04

Watael

Re : [resolu] zenity et variables à espace

TEST=(FALSE ./*)
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"

semble fonctionner.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 03/06/2011, à 15:15

Hizoka

Re : [resolu] zenity et variables à espace

non car ca donne :

FALSE fichier1 fichier2 fichier3 fichier4 fichier5

mais sur zenity ça affiche

fichier1
fichier3
fichier5

il faudrait :

FALSE fichier1 FALSE fichier2 FALSE fichier3 FALSE fichier4 FALSE fichier5

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 03/06/2011, à 16:14

AnsuzPeorth

Re : [resolu] zenity et variables à espace

Bjr,
zenity et les espaces ....
Utilise glade2script big_smile

=>[]

ps: voilà une idée de soft, un zenity like via g2s !


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#7 Le 03/06/2011, à 17:02

Hizoka

Re : [resolu] zenity et variables à espace

en fait c'est pas franchement pour moi tongue


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#8 Le 03/06/2011, à 18:43

gerarmentor

Re : [resolu] zenity et variables à espace

La solution d'utiliser les tableaux, comme proposé par Watael, semble être la plus solide.

Dans le problème particulier de la liste des fichiers, on peut faire une boucle :

for i in ./* ; do TEST+=(FALSE "$i") ; done
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"

Hors ligne

#9 Le 03/06/2011, à 18:54

Levi59

Re : [resolu] zenity et variables à espace

gerarmentor a écrit :

La solution d'utiliser les tableaux, comme proposé par Watael, semble être la plus solide.

Dans le problème particulier de la liste des fichiers, on peut faire une boucle :

for i in ./* ; do TEST+=(FALSE "$i") ; done
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"

Je n'ai pas testé mais il me semble que les quote ici TEST+=(FALSE "$i") ne seront pas conservés dans "${TEST[@]}" et en cas d'espace dans $i, ça plantera la suite.
Si j'ai raison, Ceci serais plus sûr :

for i in ./* ; do TEST+=(FALSE "'$i'") ; done
zenity --text="Votre choix" --list --radiolist --column="Choix" --column="nom" TRUE "non non" "${TEST[@]}"

(ajout de ' ' entre les " " )

Dernière modification par Levi59 (Le 03/06/2011, à 18:55)

Hors ligne

#10 Le 03/06/2011, à 19:06

gerarmentor

Re : [resolu] zenity et variables à espace

Tu te trompes levi59.

Hors ligne

#11 Le 03/06/2011, à 19:10

FRUiT

Re : [resolu] zenity et variables à espace

'$i' va ajouter la chaine littérale « FALSE $i » autant de fois qu'il y a de fichiers...


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#12 Le 03/06/2011, à 19:23

Levi59

Re : [resolu] zenity et variables à espace

@gerarmentor : Quelle est mon erreur? (Pour être sûr)

@FRUIT
J'ai compris le fonctionnement :

1ere itération : 
i="bla"
${TEST[@]} donne ""
TEST+=(FALSE "$i")
${TEST[@]} donne "FALSE bla"
2eme itération :
i="bla bla"
${TEST[@]} donne "FALSE bla"
TEST+=(FALSE "$i")
${TEST[@]} donne "FALSE bla FALSE bla bla"
... etc

Maintenant si je met ça dans un zenity, le dernier "bla" ne sera pas bien pris en compte... Si?
C'est pour ça que je propose le quote simple en renfort :

${TEST[@]} donne "FALSE 'bla'"
TEST+=(FALSE "'$i'")
${TEST[@]} donnerait "FALSE 'bla' FALSE 'bla bla'"

EDIT :
Je viens de trouver un PC pour tester et je viens de voir que je me trompais... Mea culpa.
Il prend les éléments de la liste individuellement même avec les espaces.

Dernière modification par Levi59 (Le 03/06/2011, à 19:39)

Hors ligne

#13 Le 03/06/2011, à 19:42

gerarmentor

Re : [resolu] zenity et variables à espace

Tu sembles oublier la différence entre ${TEST[@]} avec et sans guillemets.

Avec guillemets, "${TEST[@]}" est égal à "${TEST[0]}" "${TEST[1]}" "${TEST[2]}" "${TEST[3]}" ...
et donc si un de ces éléments contient un espace, il ne sera pas interprété comme un caractère spécial.
Tout fonctionnera bien.

Et si on enlève les guillemets, ta solution d'ajouter des simples quotes n'empêcherait de toute façon pas l'espace d'être interprété.

Hors ligne

#14 Le 03/06/2011, à 19:46

Levi59

Re : [resolu] zenity et variables à espace

Oui c'est ce que je venais de tester... C'est ce comportement de report des guillemets que je ne connaissais pas et du coups oui c'est évident que le problème n'en est pas un. ^^

Dernière modification par Levi59 (Le 03/06/2011, à 19:46)

Hors ligne

#15 Le 03/06/2011, à 20:37

Hizoka

Re : [resolu] zenity et variables à espace

TEST+=(FALSE "$i")

putain...bien vu !

j'avais testé :

TEST+="FALSE \""$i\""
TEST+="FALSE "$i"

pas loin mais c'était pas encore ça smile

merci et bravo !

Dernière modification par Hizoka (Le 03/06/2011, à 20:41)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#16 Le 03/06/2011, à 23:19

Hizoka

Re : [resolu] zenity et variables à espace

au final j'ai reussis à trouver ça smile

for i in *.txt ; do echo -e "FALSE\n$i" ; done | zenity --list --title="Mangas Update" --radiolist --column="Choix" --column="Animés"

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#17 Le 03/06/2011, à 23:44

Watael

Re : [resolu] zenity et variables à espace

si le shell le permet, ou s'il existe dans /usr/bin/, utilise printf

printf 'FALSE\n%s\n' ./*.txt | zenity --list --title="Mangas Update" --radiolist --column="Choix" --column="Animés"

Dernière modification par Watael (Le 03/06/2011, à 23:46)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#18 Le 04/06/2011, à 00:03

Hizoka

Re : [resolu] zenity et variables à espace

en effet, encore mieux smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#19 Le 04/06/2011, à 02:12

gerarmentor

Re : [resolu] zenity et variables à espace

Solution qui ne fonctionnera pas si le nom de fichier contient plus d'une ligne (il faut avouer que c'est assez rare)

Hors ligne

#20 Le 04/06/2011, à 04:24

Hizoka

Re : [resolu] zenity et variables à espace

en effet, mais je ne savais même pas qu'on pouvait sauter des lignes....


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#21 Le 04/06/2011, à 11:43

AnsuzPeorth

Re : [resolu] zenity et variables à espace

Hizoka a écrit :

en effet, mais je ne savais même pas qu'on pouvait sauter des lignes....

On en apprends tous les jours ! Vu comme ça, ca simplifie bien la gestion des espaces, effectivement.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne