2015-03-24 110 views
2

希望有人必須知道這一個,我可以回答我的其他問題。 Launchagent嘗試加載我的腳本的速度太快,因此失敗 - 我已將其設置爲20,並將其他所有內容都設置爲最終結果,但仍然會在創建帳戶時過快。重試bash腳本中的命令行直到成功,然後繼續使用腳本

的腳本調用cliclick如果系統沒有正確記錄在作爲一個未知命令,該命令失敗。所以,我的想法是這樣的。

在運行cliclick -h的腳本顯示幫助菜單的開始。如果在命令未知的情況下失敗,請繼續重複,直到成功完成,然後繼續執行腳本的其餘部分。

它是一個骯髒的方法,確保腳本不會運行,直到用戶在桌面上,我想不出更好的,但我也不知道如何實現它 - 所以bash腳本大師,我如何循環cliclick -h直到成功,然後繼續執行腳本的其餘部分?

回答

0

試試這個工具:https://github.com/kadwanev/retry

retry -t 1000 -e cliclick -h 

檢查退出代碼,看看它是否所有重試得手後在所有...

+0

嘿nkadwa將它作爲正確的工具它是一個有用的工具,我也嘗試過,以及使用「直到」。不幸的是,這不是導致我的問題,我仍然堅持我的腳本,但沒有意識! – realdannys 2015-03-27 11:06:50

2

我懷疑有更好的方法來做到這一點,但實際回答您的實際問題很簡單。

while ! cliclick -h; do 
    sleep 1 # or more, or less 
done 

這假設cliclick -h正確返回零(成功)退出代碼。有些命令在調用-h時會返回1,以區分執行某些實際操作的正確成功操作。然後,也許嘗試的稍微多的fugly

while true; do 
    cliclick -h || test $? -eq 1 && break 
    sleep 1 # or more, or less 
done 
+0

或者:'while! clicklick -h;做睡1;完成' – 2015-03-24 21:51:35

+0

@WilliamPursell當然;謝謝!更新。 – tripleee 2015-03-24 21:53:57

+0

嗯 - 我實際上最終使用了「直到」問題出現,這不保證腳本可以運行,更重要的是,它會停止cliclick-h以後的工作! – realdannys 2015-03-24 22:12:40

0

你也可以使用until

until cliclick -h; do sleep 2; done ; say Done