-1
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;

この作品は、時間:分:秒ベースのタイマーを取得するために作成しました。しかし、私はできませんでした!私はbashスクリプトを初めて使用します。誰かが私がここで間違ったことを教えてもらえますか?

4

1 に答える 1

3

[sの後とsの前のスペースに注意してください。最初に0に]設定した場合、これはループしません(が正でない場合、ループが終了するためです。ビットにも注意してください。secsechour=$(($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
于 2013-03-22T03:32:52.273 に答える