重试bash脚本中的命令行直到成功,然后继续使用脚本
希望有人必须知道这一个,我可以回答我的其他问题。 Launchagent尝试加载我的脚本的速度太快,因此失败 - 我已将其设置为20,并将其他所有内容都设置为最终结果,但仍然会在创建帐户时过快。重试bash脚本中的命令行直到成功,然后继续使用脚本
的脚本调用cliclick
如果系统没有正确记录在作为一个未知命令,该命令失败。所以,我的想法是这样的。
在运行cliclick -h
的脚本显示帮助菜单的开始。如果在命令未知的情况下失败,请继续重复,直到成功完成,然后继续执行脚本的其余部分。
它是一个肮脏的方法,确保脚本不会运行,直到用户在桌面上,我想不出更好的,但我也不知道如何实现它 - 所以bash脚本大师,我如何循环cliclick -h
直到成功,然后继续执行脚本的其余部分?
我怀疑有更好的方法来做到这一点,但实际回答您的实际问题很简单。
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
或者:'while! clicklick -h;做睡1;完成' – 2015-03-24 21:51:35
@WilliamPursell当然;谢谢!更新。 – tripleee 2015-03-24 21:53:57
嗯 - 我实际上最终使用了“直到”问题出现,这不保证脚本可以运行,更重要的是,它会停止cliclick-h以后的工作! – realdannys 2015-03-24 22:12:40
你也可以使用until
:
until cliclick -h; do sleep 2; done ; say Done
嘿nkadwa将它作为正确的工具它是一个有用的工具,我也尝试过,以及使用“直到”。不幸的是,这不是导致我的问题,我仍然坚持我的脚本,但没有意识! – realdannys 2015-03-27 11:06:50