코드를 작성했지만 타임스탬프가 업데이트되지 않습니다. 스크립트가 실행되는 동안의 시간을 보여주며, 루프가 실행되어 시간이 바뀌어도 계속 같은 시간을 보여줍니다.
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