set

执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。
set -u就用来改变这种行为。脚本在头部加上它,遇到不存在的变量就会报错,并停止执行



默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。



set -x用来在运行结果之前,先输出执行的那一行命令。



set -e从根本上解决了这个问题,它使得脚本只要发生错误,就终止执行。





如果停止执行之前需要完成多个操作,就要采用下面三种写法。



写法一


command || { echo “command failed”; exit 1; }



写法二


if ! command; then echo “command failed”; exit 1; fi



写法三


command
if [ “$?” -ne 0 ]; then echo “command failed”; exit 1; fi



http://www.ruanyifeng.com/blog/2017/11/bash-set.html


Category linux