Bonjour,
Si j'ai bien compris, tu as un fichier contenant des données sous la formes
Variable Valeur.
Tu fais une boucle sur le contenu du fichier
while read line; do
...
done < $fichier;
La variable
line contient une ligne du fichier, donc le couple
Variable Valeur et tu utilises la commande cut pour extraire le premier champ de la ligne, donc
var contient la
Variable.
Tu utilises la commande
cat $fichier | grep $var | cut -f 2 -d" "
pour rechercher la valeur à associer à la variable, tu peux simplifier en utilisant
grep $var $fichier
qui fait la même chose que
cat $fichier | grep $var
Tu peux également simplifier de la manière suivante, la variable
line contient les 2 valeurs recherchées, pourquoi ne pas lire la deuxième avec la commande
Valeur=$(echo $line | cut -f 2 -d" ")
Tu peux également simplifier ta boucle
while read line; do
...
done < $fichier;
en la remplaçant par
while read Variable Valeur; do
...
done < $fichier;
les valeurs recherchées seront directement présentes dans les variables
Variable et
Valeur sans utiliser grep, cut et autre.
Ta remarque
en root la commande "source" ne fonctionne pas me laisse perplexe, j'ai un fichier
couleur déclarant des variables :
BLACK='\e[0;30m'
WHITE='\e[1;37m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
RED='\e[0;31m'
GREEN='\e[0;32m'
Il est appelé depuis un autre script par la commande
source ./couleur et cela fonctionne en tant que utilisateur standard ou en tant que root.