[BASH] Diviser une variable en plusieurs variables

Résolu
Nimajneb Messages postés 33 Statut Membre -  
Nimajneb Messages postés 33 Statut Membre -
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 38797 Statut Contributeur 6 433
 
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 33 Statut Membre 1
 
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 38797 Statut Contributeur 6 433
 
Et elle sort d'où cette variable ?
0
Nimajneb Messages postés 33 Statut Membre 1
 
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 38797 Statut Contributeur 6 433
 
$ 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 33 Statut Membre 1
 
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 33 Statut Membre 1
 
$ echo ${#fruit[*]}
ne me donne pas le bon résultat :S
Je ne m'en sors pas lol

Merci de m'aider :)
0