Variable vide
Résolu
thierryR51
Messages postés
144
Statut
Membre
-
thierryR51 Messages postés 144 Statut Membre -
thierryR51 Messages postés 144 Statut Membre -
Bonjour,
Je suis confus de demander de l'aide pour ce problème mais je m'arrache les cheveux sur ce qui devrait être simple.
Voilà ce qui m'amène.
Je lis un fichier et extrait cette ligne:
192.168.1.86 MaMaison
J'en extrait l'IP dans une variable:
Cette variable est vide.
Si je fais la même chose en dehors du script
J'ai bien la bonne réponse.
192.168.1.86
Pourquoi ?
--
Chercheur en améliorations.
Je suis confus de demander de l'aide pour ce problème mais je m'arrache les cheveux sur ce qui devrait être simple.
Voilà ce qui m'amène.
Je lis un fichier et extrait cette ligne:
192.168.1.86 MaMaison
J'en extrait l'IP dans une variable:
oldip=$(grep "MaMaison" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}');
Cette variable est vide.
echo "Ancienne IP:" $oldip
Si je fais la même chose en dehors du script
grep "MaMaison" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'
J'ai bien la bonne réponse.
192.168.1.86
Pourquoi ?
--
Chercheur en améliorations.
3 réponses
-
hello
si l'affichage se fait en dehors du script, la variable a disparu avec la fin du script -
Salut,
Si je fais la même chose en dehors du script
Et si tu fais la même chose dans le script sans déclarer la variable, juste la commande ?grep "MaMaison" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'
J'ai bien la bonne réponse.
L'IP s'affiche ?
-
J'approche du but. C'est encore ma variable qui est mal lue.
Quand je metsoldip=$(grep "MaMaison" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}');
Ça marche.
Si je mets:oldip=$(grep "${origine}" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}');
Ça ne marche pas.
Si j'enlève les double cotes, ça ne change rien
Si je fais:echo "origine" $origine
# récupération de l'ancienne IP.
oldip=$(grep "MaMaison" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}');
echo "origine "$origine
echo "Valeur" $oldip;
exit 0;
origine MaMaison
origine MaMaison
Valeur 192.168.1.86
et si je faisecho "origine" $origine
# récupération de l'ancienne IP.
oldip=$(grep "${origine}" /etc/hosts | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}');
echo "origine" $origine
echo "Valeur" $oldip;
exit 0;
J'obtiens:# sh /home/thierry/Documents/scripts/hosts
origine MaMaison
origine MaMaison
Valeur
Chercheur en améliorations.