Variable vide
Résolu
thierryR51
Messages postés
139
Date d'inscription
Statut
Membre
Dernière intervention
-
thierryR51 Messages postés 139 Date d'inscription Statut Membre Dernière intervention -
thierryR51 Messages postés 139 Date d'inscription Statut Membre Dernière intervention -
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 disque dur - Télécharger - Informations & Diagnostic
- Classic shell - Télécharger - Personnalisation
- Test steam deck oled - Guide
- 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
139
Date d'inscription
Statut
Membre
Dernière intervention
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.