#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! )
#!/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 ) pour que ma boucle me renvoit :
categorie1
categorie2
categorie3
Merci d'avance
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 , en plus l'autre option est plus appropriée ..
@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 ! ;)
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