Contagem decrescente + quebra na Bash

1

Estou tentando fazer um temporizador no Bash que conta 20 minutos e depois começa uma pausa de 10 minutos imediatamente após o anterior. Então o loop continua e retorna novamente para 20 minutos.

#!/bin/bash
MIN=20
BREAK=10
while [[ 0 -ne $MIN ]]; do
    echo "$MIN"
    sleep 1
    MIN=$[$MIN-1]
done
WHILE [[ 0 -ne $BREAK ]]; do
    echo "$BREAK"
    sleep 1
    BREAK=$[$BREAK-1]
done

Eu fiz isso com segundos aqui. Então 20 segundos passam e então os 10 segundos começam imediatamente. Mas quando os 10 segundos expiram, o script é interrompido. Existe uma maneira de começar de novo com 20 minutos?

Obrigado!

    
por Dankata 20.07.2017 / 10:42

1 resposta

2

Como você sabe, para repetir um bloco de código, use um loop while do ... done . Então, para começar tudo de novo, você só precisa envolver todo o segmento de código em outro loop while... .

Desta vez, a condição pode ser apenas o comando true . Então você pegaria isso:

while true
do
    # Put the code to be repeated forever in here
    :
done
    
por 20.07.2017 / 11:07