这是一篇备忘记录,以后再写Shell脚本的时候需要注意!
之前项目使用Jenkins打包的时候,有时候因为一些错误的提交,导致出包的时候编译失败,从而导致打包出来的包里面只有部分的代码,这是因为我们写的Shell脚本没有对每条Shell命令的结果进行检查,不管执行结果是否成功都会继续往下执行。所以即使我们在编译环节有错误产生,打包的脚本还是会继续执行后面的打包指令。所以必须让脚本在某条命令执行失败的时候停止执行后续的指令。
在Shell脚本中加入:
#!/bin/bash -e 或者 set -e
就能够让脚本在有错误的时候退出。下面是网上查的拓展:
使用set -e
1 | 你写的每一个脚本的开始都应该包含set -e。这告诉bash一但有任何一个语句返回非真的值,则退出bash。 |
使用command
1 | if [ "$?"-ne 0]; then echo "command failed"; exit 1; fi " |