我有以下命令我在腳本作爲一個倒數計時器使用,它的偉大工程改變bash腳本倒計時延時步驟
# 30 sec Countdown Timer
for i in {30..1};do echo -n "$i." && sleep 1; done
Output:30.29.28.27.26 etc....
但是我想能夠輸出在5秒的時間間隔 像
: 30.25.20.15 etc..
我該如何更改腳本來做到這一點?
我有以下命令我在腳本作爲一個倒數計時器使用,它的偉大工程改變bash腳本倒計時延時步驟
# 30 sec Countdown Timer
for i in {30..1};do echo -n "$i." && sleep 1; done
Output:30.29.28.27.26 etc....
但是我想能夠輸出在5秒的時間間隔 像
: 30.25.20.15 etc..
我該如何更改腳本來做到這一點?
for i in {30..1..5};do echo -n "$i." && sleep 5; done
for i in {30..1}
do
if [ $((i%5)) == 0 ]
then
echo -n "$i."
fi
sleep 1
done
只是一個建議:你的情況可能是'if((i%5 == 0))' – 2014-09-27 12:23:04
ok。當兩種方式都起作用時,我們可以採取其中一種,對嗎 – 2014-09-27 16:40:52
當然,儘管在bash中使用'['和'$(())'似乎是多餘的。如果你打算使用''',你應該把'=='改成'='(或者更好,'-eq'),因爲其他POSIX shell不能理解==。如果你這樣做了,你的版本會比我的建議更具可移植性,這是特定於bash的建議。 – 2014-09-27 16:50:00
這裏是短跑簡單的腳本兼容和Bash:
i=30 && while [ $i -gt 0 ]; do sleep 5; i=$(($i-5)); printf "$i."; done
我會馬上upvoted,但我花了30秒,以測試你的代碼:) – 2014-09-27 10:14:11
@湯姆·芬內克: )這讓我想起了這個:我如何計算明天的日期?睡眠$((60 * 60 * 24));日期' – Cyrus 2014-09-27 10:19:26
:)這讓我想起了[sleepsort](http://stackoverflow.com/questions/6474318/what-is-the-time-complexity-of-the-sleep-sort)。 – 2014-09-27 17:50:58