[BASH] Diviser une variable en plusieurs variables

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

Merci de m'aider :)
0