bash – 检查while循环中调用的程序的退出代码
发布时间:2020-12-16 01:16:47 所属栏目:安全 来源:网络整理
导读:我想在bash中编写一个循环,它执行直到某个命令停止失败(返回非零退出代码),如下所示: while ! my_command; do # do somethingdone 但是在这个循环中我需要检查my_command返回哪个退出代码,所以我尝试了这个: while ! my_command; do if [ $? -eq 5 ]; then
我想在bash中编写一个循环,它执行直到某个命令停止失败(返回非零退出代码),如下所示:
while ! my_command; do # do something done 但是在这个循环中我需要检查my_command返回哪个退出代码,所以我尝试了这个: while ! my_command; do if [ $? -eq 5 ]; then echo "Error was 5" else echo "Error was not 5" fi # potentially,other code follows... done 但那么特殊变量呢?在循环体内变为0. while true; do my_command EC=$? if [ $EC -eq 0 ]; then break fi some_code_dependent_on_exit_code $EC done 如何检查循环体内my_command(在循环头中调用)的退出代码,而不使用带有中断条件的while true循环重写此示例,如上所示?
除了众所周知的while循环外,POSIX还提供了一个until循环,无需取消my_command的退出状态.
# To demonstrate my_command () { read number; return $number; } until my_command; do if [ $? -eq 5 ]; then echo "Error was 5" else echo "Error was not 5" fi # potentially,other code follows... done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读