Timestamp não sendo atualizado

1

Eu escrevi um trecho de código, mas o registro de data e hora não está sendo atualizado. Ele exibe a hora em que o script é executado e continua exibindo a mesma hora, mesmo quando o loop está em execução e o tempo está sendo alterado.

T=$(date)
while [ -f $BACKUP_FILE ]
do
    echo "[$T] Backup is in Progress" | tee -a $LOG_FILE
    sleep 10
done

O que poderia estar errado?

    
por HIMANSHU SINGHAL 15.07.2016 / 10:56

2 respostas

2

Você precisa colocar T=$(date) dentro do seu do .. while loop ou ele nunca será atualizado (ou seja, como está, a data é determinada apenas uma vez na parte superior do seu código).

    
por 15.07.2016 / 11:00
2

Você está atribuindo a data uma vez a uma variável fora do corpo do loop e desreferenciando essa variável dentro do loop. O valor na variável nunca é atualizado, portanto, durante a duração do loop, ele sempre conterá o valor inicialmente atribuído na linha 1.

Para obter o efeito que você deseja, elimine completamente a variável e apenas chame date dentro do corpo do loop:

while [ -f "$BACKUP_FILE" ]
do
    echo "[$(date)] Backup is in Progress" | tee -a "$LOG_FILE"
    sleep 10
done
    
por 15.07.2016 / 11:03