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 ?
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 ?
A voir également:
- Shell test variable vide
- Test performance pc - Guide
- Test steam deck oled - Guide
- Classic shell - Télécharger - Personnalisation
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
3 réponses
hello
si l'affichage se fait en dehors du script, la variable a disparu avec la fin du script
si l'affichage se fait en dehors du script, la variable a disparu avec la fin du script
thierryR51
Messages postés
144
Statut
Membre
8
Pour le test j'ai demandé en 2e ligne le résultat de cette variable. Je suis bien dans le script... Au vu de ta réponse, il semblerait que je n'ai pas fait de faute. Je vais donc creuser plus encore pour comprendre. Merci.
Salut,
L'IP s'affiche ?
Si je fais la même chose en dehors du scriptEt 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 mets
Ça marche.
Si je mets:
Ça ne marche pas.
Si j'enlève les double cotes, ça ne change rien
Si je fais:
et si je fais
J'obtiens:
Chercheur en améliorations.
Quand je mets
oldip=$(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 fais
echo "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.