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/07/2008, à 20:16

nochka85

[Résolu] Aide en bash pour un débutant

Bonjour,

J'ai un petit soucis en bash :

Voici mon script : (c'est un exemple tout simple pour expliquer le problème! tongue)


#!/bin/bash

LIST="categorie1 categorie2 categorie3"

for temp in $LIST
	do
		CAT_FINAL="$CAT_FINAL false $temp"
	done

TODO=$(zenity --list --column="Choix" --column="Catégories" --checklist --text="Liste des catégories\n Choisissez les catégories à traiter" --title="Menu" $CAT_FINAL)

	for temp in $TODO
		do
			echo "$temp"
		done
exit

le problème, c'est que zenity me donne une variable TODO égale à "categorie1|categorie2|categorie3" (si je coche tout) .... et donc, ma "boucle" ne me renvoit qu'une seule ligne avec echo -> categorie1|categorie2|categorie3

.... Bref, ce que je voudrais, c'est convertir ce "categorie1|categorie2|categorie3" en "categorie1 categorie2 categorie3" (avec des espaces wink) pour que ma boucle me renvoit :

categorie1
categorie2
categorie3

Merci d'avance wink

Dernière modification par nochka85 (Le 03/07/2008, à 20:35)


Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne

#2 Le 03/07/2008, à 20:34

nochka85

Re : [Résolu] Aide en bash pour un débutant

Bon, on m'a donné la réponse sur un autre forum : Il suffit de configurer le séparateur à prendre en compte avec la variable IFS :

#!/bin/bash
IFS=" "
LIST="categorie1 categorie2 categorie3"

for temp in $LIST
    do
        CAT_FINAL="$CAT_FINAL false $temp"
    done

TODO=$(zenity --list --column="Choix" --column="Catégories" --checklist --text="Liste des catégories\n Choisissez les catégories à traiter" --title="Menu" $CAT_FINAL)
IFS="|"
    for temp in $TODO
        do
            echo "$temp"
        done
exit

Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne

#3 Le 03/07/2008, à 20:44

Alain.g

Re : [Résolu] Aide en bash pour un débutant

Bonsoir
zenity dispose de l'option  --separator qui permet de choisir le séparateur de son choix


Xubuntu Karmic !

Hors ligne

#4 Le 03/07/2008, à 20:49

ADcomp

Re : [Résolu] Aide en bash pour un débutant

Hello,

Suis pas Xpert mais je dirais avec sed ? -->  man sed

david@david-desktop:~$ echo "test|avec|sed" | sed s/'|'/' '/g
test avec sed

# Edit : j'arrive en retard wink , en plus l'autre option est plus appropriée .. tongue

@Pluche
David [ a.k.a ] ADcomp

Dernière modification par ADcomp (Le 03/07/2008, à 20:51)


David [aka] ADcomp

Hors ligne

#5 Le 03/07/2008, à 23:14

nochka85

Re : [Résolu] Aide en bash pour un débutant

Cool ! Merci pour vos réponses -> Maintenant je n'ai QUE l'embaras du choix ! tongue;)


Carte mère Asus P7P55D-E; Processeur Intel core i5 760; 8Go RAM PC3-10666; Geforce GTX 460 1024Mo sous Ubuntu 64bits 14.04
Eeepc 701 4G sous Linux Mint 10 Lxde
Site officiel de Glx-Dock/Cairo-Dock : http://www.glx-dock.org/
Dnd2share Unity - Partager vos images sur le forum par drag'n drop

Hors ligne