Veja um exemplo de execução de date +%S
, que imprime segundos da hora atual, a cada meio segundo e para em uma condição (veja abaixo):
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'
A parada da condição:
-
Se você descomentar esta linha apenas:
if [[ ! $str =~ 5 ]]; then
ele fará um loop enquanto
5
existir na saída (por exemplo, enquanto de50
até00
) -
Se você descomentar esta linha apenas:
if [[ $str =~ 7 ]]; then
ele irá loop até que
7
exista na saída (ou seja, até os segundos atuais = 07, 17, 27, 37, 47 ou 57)
Exemplo de saída para não conter string ( 5
neste caso):
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
Exemplo de saída para conter string ( 7
neste caso):
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