需求
在crontab定时任务中,一般都是多个语句组成一个shell script,定时执行,这就存在了语句执行逻辑问题。
理论
有时候单纯是按一定顺序执行,有时候需要按一定逻辑执行(通过回传值来完成)。
- 按顺序依次执行(通过
;
分隔)
cmd1;cmd2;cmd3; - 按逻辑与执行(&&分隔)
cmd1&&cmd2&&cmd3;cmd4; - 按逻辑或执行:(||分隔)
cmd1||cmd2||cmd3;cmd4;
即回传值为0时逻辑与继续执行下去,回传值不为0时逻辑或继续执行,跟平时程序的逻辑与跟逻辑或短路一样(?
为回传值,命令执行正确时回传值为0 通过echo $?可以试验,具体搜"回传") - 组合:
cmd1;cmd2||cmd3&&cmd4;cmd5;
先执行cmd1然后执行cmd2,如果cmd2回传值非0则执行cmd3,如果cmd3回传值为0则执行cmd4,然后继续按顺序执行