Zähler im Shell-Skript hinzufügen
Ich habe folgenden code in meinem shell-script, welches auf zu halten schlafen wenn es nicht feststellt, dass irgendeine Datei. Und er schläft für eine halbe Stunde, aber momentan habe ich keinen Zähler wie nur ausführen, die unter code 20 mal und beenden Sie das Programm, wenn die Dateien noch nicht da sind (bedeutet nicht alles tun, nach 20 Prüfungen und verlassen das vollständige Skript).
Was ist der beste Weg, das zu tun dieses problem? Also, ich bin mir auch bewusst, indem man die E-Mails, die es versucht hat, 20 mal.
Hoffe ich bin deutlich genug.
while true; do
if /home/hadoop/latest/bin/hadoop fs -ls /apps/hdtech/bds/quality-rt/dt=$DATE_YEST_FORMAT2 then
echo "Files Present" | mailx -s "File Present" -r admin@host.com admin@host.com
break
else
echo "Sleeping for half an hour" | mailx -s "Time to Sleep Now" -r admin@host.com admin@host.com
sleep 1800
fi
done
InformationsquelleAutor der Frage arsenal | 2012-11-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie Sie vielleicht implementieren Sie einen Zähler:
Einige Erklärungen:
counter=$((counter+1))
- dies ist, wie können Sie Inkrementieren eines Zählers. Die$
fürcounter
ist optional innerhalb der doppelten Klammern in diesem Fall.elif [[ "$counter" -gt 20 ]]; then
- dieser prüft, ob$counter
ist nicht größer als20
. Wenn dem so ist, gibt es die entsprechende Meldung an und bricht Ihrer while-Schleife.InformationsquelleAutor der Antwort sampson-chen
Versuchen Sie dies:
Erklärung
break
- wenn Dateien vorhanden sind, wird es brechen und lassen Sie das Skript, um die Dateien zu verarbeiten.[[ "$counter" -gt 20 ]]
- wenn die Zählervariable größer als 20 ist, wird das Skript beendet.let counter++
- erhöht den Zähler um 1 bei jedem Durchlauf.InformationsquelleAutor der Antwort koola