时间戳未更新

时间戳未更新

我已经编写了一段代码,但时间戳没有更新。它显示脚本运行时的时间,并且即使在循环运行且时间发生更改时也继续显示相同的时间。

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

相关内容