当前位置:   article > 正文

shell:脚本执行失败就退出的3种方案_shell脚本出错则不继续执行

shell脚本出错则不继续执行

简介: 在日常的自动化测试中,尤其shell脚本,在针对需要多个程序运行,shell脚本顺序执行过程可能会有中间环节会运行失败,抛出异常停止运行并报错,然而shell的其他下方语句仍然会继续往下执行,有时需要规避这类问题,使得出错后就退出后面的执行。

案例目录结构:

  1. .
  2. ├── [Feb 7 00:47] do.py
  3. ├── [Feb 7 00:47] main.py
  4. └── [Feb 7 00:49] run.sh

案例脚本1: do.py

  1. # -*- coding: utf-8 -*-
  2. # time: 2023/2/7 0:46
  3. # file: do.py
  4. # 公众号: 伤心的辣条
  5. def do():
  6. print("Demo B start.")
  7. print("Demo B finish.")
  8. if __name__ == '__main__':
  9. do()

案例脚本2: main.py

  1. # -*- coding: utf-8 -*-
  2. # time: 2023/02/07 11:26
  3. # file: main.py
  4. # 公众号: 伤心的辣条
  5. def show():
  6. print("Demo A start.")
  7. raise BaseException("some reason, just like timeout.")
  8. print("Demo A finish.")
  9. if __name__ == '__main__':
  10. show()

案例脚本3: run.sh

  1. #!/bin/bash
  2. python3 main.py
  3. python3 do.py

常规情况下运行: bash run.sh

执行结果: 可以看到执行main.py后,哪怕遇到报错,程序非正常退出,依然执行了do.py,这不符合我们的需求。

  1. Demo A start.
  2. Traceback (most recent call last):
  3. File "main.py", line 14, in <module>
  4. show()
  5. File "main.py", line 9, in show
  6. raise BaseException("some reason, just like timeout.")
  7. BaseException: some reason, just like timeout.
  8. Demo B start.
  9. Demo B finish.

方案1: 增加set -e,推荐

  1. #!/bin/bash
  2. set -e
  3. python3 main.py
  4. python3 do.py

方案2: 增加set -o errexit

  1. #!/bin/bash
  2. set -o errexit
  3. python3 main.py
  4. python3 do.py

方案3: 逻辑与。&&连接的命令会按照顺序从前向后执行

  1. #!/bin/bash
  2. python3 main.py &&
  3. python3 do.py

运行结果:改造后,只运行main.py,而不会进行往下运行do.py

  1. Demo A start.
  2. Traceback (most recent call last):
  3. File "main.py", line 14, in <module>
  4. show()
  5. File "main.py", line 9, in show
  6. raise BaseException("some reason, just like timeout.")
  7. BaseException: some reason, just like timeout.

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取 【保证100%免费】

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/189272?site
推荐阅读
相关标签
  

闽ICP备14008679号