[BASH] Diviser une variable en plusieurs variables

Résolu/Fermé
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 - Modifié par [Dal] le 17/01/2014 à 13:34
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 - 20 janv. 2014 à 09:58
Bonjour !

Je coince sur un problème en bash.

J'ai une variable $FRUIT (je simplifie, je ne m'amuse pas avec des fruits hein) qui contient une chaîne de caractère de la forme :

echo $FRUIT
"fraise""pomme""raisin""poire"



Je souhaiterai à partir de cette variable avoir autant de variables que de FRUIT.
Sachant que le nombre de fruits est variable lui aussi...

Toujours dans cet exemple j'aimerai donc qu'il en découle 5 variables correspondant à :

echo $fruit1
"fraise"
echo $fruit2
"pomme"
echo $fruit3
"raisin"
echo $fruit4
"poire"



MERCI d'avance si vous pouvez m'aider :)
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
17 janv. 2014 à 13:34
Salut,

Utilise un tableau :

$ fruit=(fraise pomme raisin poire)

$ echo ${fruit[0]}
fraise

$ echo ${fruit[1]}
pomme

$ echo ${fruit[2]}
raisin

$ echo ${fruit[3]}
poire

$ echo ${#fruit[*]}
4

0
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 1
17 janv. 2014 à 13:47
Le nombre de fruit est variable et je ne connais pas leur nom.
Je ne peux donc pas prévoir un tel tableau.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
17 janv. 2014 à 13:49
Et elle sort d'où cette variable ?
0
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 1
17 janv. 2014 à 14:00
Cette variable est rempli par des noms qui peuvent contenir des espaces. Chaque nom est entre guillemets. J'ai besoin que chacun des noms entre guillemets soient envoyés dans une variable différente.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
17 janv. 2014 à 14:03
$ var='"fraise" "pomme" "raisin" "poire"'

$ echo ${var}
"fraise" "pomme" "raisin" "poire"

$ fruit=(${var})

$ echo ${#fruit[*]}
4

$ echo ${fruit[1]}
"pomme"

$ echo ${fruit[2]}
"raisin"

$ echo ${fruit[3]}
"poire"

$ echo ${fruit[0]}
"fraise"
0
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 1
17 janv. 2014 à 14:09
Merci. Ca me donne 1 comme résultat.
Mais je pense que c'est parce que je n'ai pas d'espace entre mes noms. Je vais tester en ajoutant des espaces avec sed.
0
Nimajneb Messages postés 32 Date d'inscription mercredi 21 février 2007 Statut Membre Dernière intervention 18 août 2015 1
17 janv. 2014 à 14:12
$ echo ${#fruit[*]}
ne me donne pas le bon résultat :S
Je ne m'en sors pas lol

Merci de m'aider :)
0