오랜 시간 동안 사용하면 bash 스크립트의 타이머가 정확하지 않습니다.

오랜 시간 동안 사용하면 bash 스크립트의 타이머가 정확하지 않습니다.
#!/bin/bash

# get user input
ZENITY1=$(zenity --entry --text '  1m:    60s\n  5m:   300s\n10m:   600s\n15m:   900s\n20m: 1200s\n25m: 1500s\n30m: 1800s\n35m: 2100s\n40m: 2400s\n45m: 2700s\n50m: 3000s\n55m: 3300s\n   1h: 3600s' --entry-text "Input only int in seconds!" --title "Timer")

# put starting date in variable
STARTTIME=$(date)

# audit/check user input
WAITINGTIME=$(echo $ZENITY1 | egrep "[0-9]{1,}" -o)
if [ "$WAITINGTIME" == "" ]; then exit 1; fi

# main stopwatch
for i in `seq $WAITINGTIME -1 1`; do echo $i | osd_cat -A left -p top -i 100 -c black -d 1; done

# time expired message
zenity --info --text="Time expired@\n$(date)\n\nStarted@\n$STARTTIME"

이것은 내 데스크탑의 스크립트입니다. 누군가에게 경고해야 하는 경우: "15분 후에 경고해 주세요." 하지만 더 긴 시간(예: 12시간)을 사용하면 그다지 정확하지 않습니다! 실제 시간과 10분 정도 차이가 있을 수 있습니다...:\ 왜 이런 현상이 발생하는 걸까요?

답변1

echo지속적으로 시간이 너무 오래 걸린다면 합산을 4만 번 이상 수행 하는 오버헤드를 보고 있는 것 같습니다 osd_cat.

관련 정보