Ich versuche, einige einfache Pass / Fail-Testskripte zu erstellen, habe aber einige Herausforderungen, wie unten beschrieben. Meine Absicht ist es, die vollständigen Ergebnisse eines Befehls (z. B. Ping) in eine zu results.txt
speichernde Datei zu übertragen, aber auch die results.txt
Datei zu analysieren , um verschiedene Überprüfungen durchzuführen, wenn Probleme festgestellt werden:
#!/bin/bash
ping -c 20 google.com > results.txt
packetloss = `awk '/packet loss/{x=$6} END{print x}' results.txt`
echo "$packetloss" >> debug.txt
# if packetloss > 0, add to an error.txt to fail
# if avg ping time > 5ms, add to an error.txt to fail
Die Paketverlustvariable ruft die awk
Informationen nicht aus der results.txt
Datei ab (Senden an eine Debug-Datei zur Überprüfung). Ich habe mich gefragt, ob es etwas an Shell-Skripten gibt, das dies und eine damit verbundene Problemumgehung verhindert.
Manuelles Ausführen awk
mit results.txt
'0%' ergibt das erwartete Ergebnis.