Linux bash计时器

Linux bash计时器,linux,bash,if-statement,while-loop,Linux,Bash,If Statement,While Loop,好吧,愚蠢的新手问题。我以为我在做倒计时。这应该是从5开始倒计时,一旦它是0,然后执行回声“时间到了小丑”,然后结束。我做错了什么 seconds=5 date1=$((`date +%s` + $seconds)); while [ "$date1" -ne `date +%s` ]; do if (!$date1 -lt ((`date +%s` + $seconds)+1)); then echo "time is up clown"; break; fi;

好吧,愚蠢的新手问题。我以为我在做倒计时。这应该是从5开始倒计时,一旦它是0,然后执行回声“时间到了小丑”,然后结束。我做错了什么

seconds=5
date1=$((`date +%s` + $seconds)); 
while [ "$date1" -ne `date +%s` ]; do 
  if (!$date1 -lt ((`date +%s` + $seconds)+1)); then
     echo "time is up clown";
  break;
  fi;
  echo -ne "$(date -u --date @$(($date1 - `date +%s` )) +%H:%M:%S)\r";
done

“睡眠5;回音时间到了”有什么不对。首先,声明的意图是
回应“时间到了小丑”
,但实际上你有
回应“时间到了婊子”
。或者这不是您要问的问题?我尝试将echo命令移动到done语句之后,但脚本在done处停止,然后不执行echo,不要紧。我一直都有。问题是我在提示符下测试它,而不是像正常情况下那样执行脚本。所以你的答案还是正确的。谢谢你的帮助。
#!/bin/bash
SECS=5
while [[ 0 -ne $SECS ]]; do
    echo "$SECS.."
    sleep 1
    SECS=$[$SECS-1]
done
echo "Time is up, clown."