"J'essaie d'obtenir des réponses réussies et non réussies d'un ping dans un script bash, mais je n'y suis pas parvenu jusqu'à présent.
Mon code ressemble à ceci ...
ping_results=$(ping -c 4 -q google.com)
Cela fonctionne lorsque le ping est réussi, mais si je n’ai pas de connexion Internet et j’obtiens le résultat
ping: unknown host google.com
Il est imprimé sur la console et mon script semble quitter.
Je veux que le résultat ou l'erreur du ping soit stocké dans la variable ping_results.
Toute aide serait appréciée.
Réponses:
6 pour la réponse № 1Ok, la réponse simple à votre question est de rediriger stderr vers stdout. comme ce que Fredik Phil a mentionné dans les commentaires.
au lieu de:
ping_results=$(ping -c 4 -q google.com);
utilisation:
ping_results=$(ping -c 4 -q google.com 2>&1);
ou quelque chose de similaire ...
Cependant, selon ce que vous faites, il se peut queIl vaut mieux tester si le code de sortie de la commande ping est 1 (indiquant que le ping se termine par une erreur) ou à 0 (indiquant que le ping réussit). le code de sortie est stocké dans la variable "$?".