此腳本每5秒檢查文件是否存在僅30秒。腳本等待文件出現 如果它發現該文件,它會回顯「info:等待完成「。在帶條件語句的while循環中放置錯誤消息
我遇到的麻煩是如果找不到文件,則在30秒後退出 後出現錯誤消息。
腳本配置的方式現在在每個循環之後打印錯誤超時。
#!/bin/bash
count=1
while [ $count -le 6 ]
do
if [ ! -e /tmp/2007.txt ]
then
echo "info : sleeping for 5 seconds"
((count++))
sleep 5
elsif [ -e /tmp/2007.txt ]
echo "info: done waiting"
break
fi
echo "error: timeout"
done
這是我得到的(壞)
info : sleeping for 5 seconds
error: timeout
info : sleeping for 5 seconds
error: timeout
info : sleeping for 5 seconds
error: timeout
info : sleeping for 5 seconds
error: timeout
info : sleeping for 5 seconds
error: timeout
info : sleeping for 5 seconds
error: timeout
,如果我把它退出循環 - 它的偉大工程
break
fi
done
echo "error: timeout"
這就是我得到
[email protected] ~ $ /tmp/wait_while
info : sleeping for 5 seconds
info : sleeping for 5 seconds
info : sleeping for 5 seconds
info : sleeping for 5 seconds
info : sleeping for 5 seconds
info : sleeping for 5 seconds
error: timeout
[email protected] ~ $
但是,如果我觸摸/tmp/2007.txt文件 - 它破壞bu t的誤差超時 仍顯示
[email protected] ~ $ /tmp/wait_while
info : sleeping for 5 seconds
info : sleeping for 5 seconds
info: done waiting
error: timeout
這是一個簡單的問題,而是因爲它反映了我在理解的共同問題,條件語句和在哪裏放置這些循環我帶在這裏向社會聲明。我在腳本中遇到了這個問題,我需要理解這一點,我需要發展。我正在尋找的是檢查30秒的腳本,以及是否找不到任何可以拋出錯誤消息的腳本。如果腳本找到該文件,我希望它讓我知道,而不是踢出錯誤信息。
可以使用用於comparisions算術表達式,如下所示:''而((計數<= 6))''。如果你使用bash,你也不應該使用''[''''''''''''' –