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.txtspeichernde Datei zu übertragen, aber auch die results.txtDatei 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 awkInformationen nicht aus der results.txtDatei 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 awkmit results.txt'0%' ergibt das erwartete Ergebnis.