我已经编写了一段代码,但时间戳没有更新。它显示脚本运行时的时间,并且即使在循环运行且时间发生更改时也继续显示相同的时间。
T=$(date)
while [ -f $BACKUP_FILE ]
do
echo "[$T] Backup is in Progress" | tee -a $LOG_FILE
sleep 10
done
可能出了什么问题?
答案1
您需要放入..循环T=$(date)
中,否则它永远不会更新(即,就目前情况而言,日期仅在代码顶部确定一次)。do
while
答案2
您将日期一次分配给循环体外部的变量,并在循环内部取消引用该变量。变量中的值永远不会更新,因此在循环期间,它将仅包含最初在第 1 行分配的值。
为了获得您想要的效果,请完全取消该变量并仅date
在循环体内调用:
while [ -f "$BACKUP_FILE" ]
do
echo "[$(date)] Backup is in Progress" | tee -a "$LOG_FILE"
sleep 10
done