タイムスタンプが更新されませんでした。

タイムスタンプが更新されませんでした。

コードを書きましたが、タイムスタンプは更新されません。スクリプトの実行中の時間を示し、ループが実行され、時間が変わっても同じ時間を表示します。

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

何が間違っている可能性がありますか?

答え1

..ループに入れる必要がありますT=$(date)。それ以外の場合は更新されません(つまり、現在の状態では、日付はコードの上部で一度だけ決定されます)。dowhile

答え2

ループ本体の外側の変数に日付を一度割り当て、ループ内の変数を逆参照します。変数の値は更新されないため、ループ中に元の行1に割り当てられた値のみが含まれます。

目的の効果を得るには、変数を完全に削除してdateループ本体内で呼び出すだけです。

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

関連情報