2015-04-28 124 views
0

我們可以在shell腳本中設置定時器嗎? 意味着,如果我設置的定時器設置爲20秒我的shell腳本應該執行這樣的:如何在shell中設置定時器

20..19..18..17.. 

完成了我應該得到的結果之後。可能嗎 ?請幫助我。

+1

什麼shell?什麼OS?但是假設* Nix'man sleep'並且只是在你的腳本的頂部放置'sleep 20'?或者你想讓它跑20秒? – Doon

+0

Hi Doon, 我希望我的.sh文件在20秒內執行。執行./xyz.sh文件後,它應該顯示執行時間: 20..19..18..17 .. – Himanshu

+0

如果在20秒內未完成,是否要中斷進程? –

回答

0

這並不完全清楚你想要什麼:如果xyz.sh在3秒內完成,你是否想再等待17秒?或者你想在20秒後中斷xyz.sh並使其產生輸出嗎?如果後者:

$ cat a.sh 
#!/bin/bash 

./xyz.sh & 

i=${1-20} 
echo 
while test $i -gt 0; do printf "\r$((i--))..."; sleep 1; done 
kill $! 


$ cat xyz.sh 
#!/bin/sh 

foo() { echo "this program doesn't do much"; } 
trap foo TERM 
sleep 30 & 
wait 
+0

謝謝威廉。我從你的代碼中得到了邏輯。我希望我的腳本能夠等待給定的時間。如果它超過給定的時間,我想中斷這個過程。 – Himanshu