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 01/06/2008, à 13:20

Le Roi Newbie

[Résolu] zenity --list avec un variable contenant des espaces

Bonjour à tous ! smile

Voici un petit résumé de mon problème :

1 - J'ai généré une liste de fichier d'un dossier, liste enregistrée dans un fichier nomme file :

/(Chemin du répertoire)/
Fichier 1
Fichier 2
Fichier 3

On supppose donc que les fichiers se nomment : Fichier 1 et Fichier 2 et Fichier 3.

2 - Je voudrais afficher chaque fichier sur une checklist avec zenity, j'ai donc fait ceci :

NBlignes=$(wc -l "$file" | cut -d" " -f1)
for ((i=2;i<=$NBlignes;i++))
do
echo -e -n " TRUE \"$(sed -n "$i p" "$file")\"" >> tmp_file
done

=> J'obtiens ce fichier temporaire :

 TRUE "Fichier 1" TRUE "Fichier 2" TRUE "Fichier 3"

Et ensuite je fait ceci :

checklist=$(sed -n "1 p" "tmp_file")
list=$(zenity --list --checklist --separator="\n" --text="Cochez les fichiers à garder" --column="" --column="Fichiers gardés" $checklist)

Le but étant d'avoir un équivalent à ceci :

list=$(zenity --list --checklist --separator="\n" --text="Cochez les fichiers à garder" --column="" --column="Fichiers gardés" TRUE "Fichier 1" TRUE "Fichier 2" TRUE "Fichier 3")

Mais le problème est qu'au lieu d'avoir la checklist :
#Fichier 1
#Fichier 2
#Fichier 3

J'ai ceci :
#Fichier
#1
#Fichier
#2
#Fichier
#3

Auriez-vous une idée ?
Je vous remercie d'avance pour vos réponses et d'avoir lu ce message ! wink
A très bientôt j'espère. smile

Dernière modification par Le Roi Newbie (Le 03/06/2008, à 15:00)

Hors ligne

#2 Le 01/06/2008, à 15:46

Alain.g

Re : [Résolu] zenity --list avec un variable contenant des espaces

Bonjour

Je pense qu'il faut passer par un tableau, ça te permettrait d'ailleurs de ne pas avoir besoin du fichier temporaire :

while read line ; do checklist+=(TRUE "$line") ; done < <(sed '1d' "$file")

list=$(zenity --list --checklist --separator="\n" --text="Cochez les fichiers à garder" --column="" --column="Fichiers gardés" "${checklist[@]}")

Xubuntu Karmic !

Hors ligne

#3 Le 01/06/2008, à 19:27

LittleWhite

Re : [Résolu] zenity --list avec un variable contenant des espaces

Dans le cas ou on veut garder des noms avec des espaces il faut ecrire la variable come cela :

file=mon fichier avec espace
"${file}"

Mais je ne sais pas si ça va t'aider ( j'ai eu ce problème y a pas longtemps )


Linux ou mourir
Pour avoir des problemes : demarrer Windows
Script de compression multi archive : http://forum.ubuntu-fr.org/viewtopic.php?id=225297

Hors ligne

#4 Le 03/06/2008, à 15:00

Le Roi Newbie

Re : [Résolu] zenity --list avec un variable contenant des espaces

Pour les guillemets ça marche malheureusement pas. Je sais pas trop pourquoi, on dirait l'interprétation est différente si on passe par une variable contenant déjà des guillemets.

Par contre le tableau marche très bien !

Merci beaucoup à vous ! big_smile

Hors ligne