2014-03-19 48 views
1
#!/bin/bash 

for i in $(seq $1) 
     do 
       echo -n '.' 
       sleep 1 
     done 

echo 

腳本根據用戶的輸入每秒打印一個點並在屏幕上顯示點數。我想要做的是,當我按下某個鍵(例如,a)時,腳本將在半秒內像一個點一樣運行得更快。因此,按下同一個鍵時,它運行得越快。如何在腳本運行時處理循環輸出

+0

所以你想在腳本已經運行時交互調整睡眠時間? – Saucier

+0

這是正確的:D你能幫助我嗎? – Cailou

回答

1

使用變量作爲sleep的持續時間:

duration=1 
# ... inside loop: 
       sleep $duration 
# ... 

然後每次sleep結束通話,有一些代碼來檢查新的按鍵,並根據需要改變的$duration值。

在另一個說明中,根據sleep的版本,您可以使用它,它可能不支持小數參數,因此您可能必須使用單獨的程序,如usleep

+1

一個問題是'睡眠'只能在秒鐘內工作。所以'usleep'將是一個更好的選擇,因爲它支持微秒。 – Saucier

+0

啊......我的系統的'sleep'支持小數秒,所以它會變化。無論如何,我會補充說。 –

+0

感謝您的回答,但是您可以幫我使用代碼來檢查按鍵嗎? – Cailou