Salut les gens,
Dans le cadre d'un petit script bash qui me sert à faire du timelapse sur un RPi, j'aurais besoin de charger plusieurs valeurs dans plusieurs variables depuis un fichier.
J'explique…
Pour charger une valeur dans une variable, je fais par exemple
Frequency="$(</home/pi/timelapse/frequency)"
ou bien
Frequency=( `cat "/home/pi/timelapse/frequency" `)
(mais c'est un UUOC il paraît ;-), donc j'évite!)
Sauf que j'aurais besoin de faire ça avec 2 variables différentes depuis un seul fichier
C'est possible ?
# Cherchez plus
Posté par cyberjunkie . Évalué à 3.
J'ai continué de creuser et j'ai trouvé une solution qui devrait faire mon affaire: créer un tableau.
Si je pose que le contenu de mon fichier 'frequency' est par exemple
alors je peux faire
Frequency=($(</home/pi/timelapse/frequency))
puis, pour récupérer les valeurs je fais
echo ${Frequency[0]}
echo ${Frequency[1]}
et ainsi de suite si j'ai plus que 2 valeurs.
Merci à vous et probablement à bientôt pour une autre question de débutant ;-)
(mais la prochaine fois je tournerai mon clavier 7 fois dans ma bouche avant de poster …)
[^] # Re: Cherchez plus
Posté par deuzene (site web personnel) . Évalué à 4.
Tu n'avais pas précisé la structure de ton fichier. Apparemment tu as trouvé une solution.
Je t'en propose une autre (à tester quand même) à adapter :
Le fichier frequency :
Le script :
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Cherchez plus
Posté par cyberjunkie . Évalué à 1.
Bah voilà, maintenant j'ai plus de solutions que de problèmes :-D
Merci à tous.
# read builtin + corrections ;-))
Posté par LaBienPensanceMaTuer . Évalué à 2.
Alors, concernant ça:
L'emploi de parenthèse ET de backquote est inutile (deux sous-shell spawnés pour rien).
Utilise soit
ou
Ensuite, pour ta problématique, tu as plusieurs solutions:
En utilisant le builtin "read", ça fait relativement facilement.
cat "ton_fic" |while read var1 var2 ; do
echo "v1=$var1 v2=$var2"
done
En évitant d'utiliser inutilement cat:
$ while read var1 var2 ; do echo "v1=$var1 v2=$var2" ; done < test1
v1=aaa v2=bbb
v1=ccc v2=ddd
v1=eee v2=fff
v1=ggg v2=hhh
v1= v2=
Note: le code block est qd même bien foireux … :(
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.