Wie kann man den bashBefehl so lange wiederholen, bis die Ausgabe keine Zeichenfolge mehr enthält, und dann die Zeit drucken, zu der die Ausgabe der Schleife gestoppt wurde? watchBefehl ist nicht verfügbar.
Wie kann man den bashBefehl so lange wiederholen, bis die Ausgabe keine Zeichenfolge mehr enthält, und dann die Zeit drucken, zu der die Ausgabe der Schleife gestoppt wurde? watchBefehl ist nicht verfügbar.
Antworten:
Hier ist ein Beispiel für das Laufen date +%S, bei dem alle halbe Sekunde ein Teil der aktuellen Zeit als Sekunden ausgegeben und unter bestimmten Bedingungen angehalten wird (siehe unten):
while true; do
str=`date +%S`
echo Output: $str
# Use the below when you want the output not to contain some string
if [[ ! $str =~ 5 ]]; then
# Use the below when you want the output to contain some string
# if [[ $str =~ 7 ]]; then
break
fi
sleep .5
done
echo Finished: `date`
Die bedingung aufhören:
Wenn Sie nur diese Zeile auskommentieren:
if [[ ! $str =~ 5 ]]; then
es wird geloopt, solange 5es in der Ausgabe existiert (zB während von 50bis 00)
Wenn Sie nur diese Zeile auskommentieren:
if [[ $str =~ 7 ]]; then
Es wird solange wiederholt, bis 7es in der Ausgabe existiert (dh bis die aktuellen Sekunden 07, 17, 27, 37, 47 oder 57 sind).
Beispielausgabe für nicht enthaltenen String ( 5in diesem Fall):
Output: 56
Output: 57
Output: 57
Output: 58
Output: 58
Output: 59
Output: 59
Output: 00
Finished: Thu Mar 1 20:16:00 EST 2012
Beispielausgabe für die Aufnahme eines Strings ( 7in diesem Fall):
Output: 08
Output: 09
Output: 09
Output: 10
Output: 10
Output: 11
Output: 11
Output: 12
Output: 12
Output: 13
Output: 13
Output: 14
Output: 14
Output: 15
Output: 15
Output: 16
Output: 16
Output: 17
Finished: Thu Mar 1 19:58:17 EST 2012
if [[ ! $str =~ 5 ]]; thenstattdessen einfach meine Bearbeitung.