编写倒数计时器脚本时出错

时间:2013-03-22 03:21:07

标签: bash

hour_init=$((1)); 
min_init=$((30)); 
sec_init=$((00)); 
hour=$hour_init; 
min=$min_init; 
sec=$sec_init; 
while [ $hour -gt 0]; 
while [ $min -gt 0 ]; 
while [$sec -gt 0]; 
do clear; 
echo $sec | figlet; 
sleep 1; 
sec=$(($sec- 1)); 
done; 
sec=$sec_init; 
min=$(($min- 1)); 
done; 
hour=$($hour- 1); 
min=$min_init; 
sec=$sec_init; 
done;

我写这篇文章得到一小时:min:sec的计时器。但我不能!我是新手来编写脚本。谁能告诉我这里做错了什么?

1 个答案:

答案 0 :(得分:3)

请注意[之后和]之前的空格,如果您最初将sec设置为0,则不会循环(因为您的循环在sec时退出非正面。另请注意hour=$(($hour- 1))位:

hour_init=1
min_init=60
sec_init=60
hour=$hour_init
min=30
sec=0
while [ $hour -gt 0 ] 
do
  while [ $min -gt 0 ]; do
    while [ $sec -gt 0 ] 
    do clear
      echo "$hour:$min:$sec"
      sleep 1
      sec=$(($sec- 1))
    done
    sec=$sec_init
    min=$(($min- 1))
  done
  hour=$(($hour- 1))
  min=$min_init
  sec=$sec_init
done