set -u
脚本遇到未定义的变量时,默认会忽略,值为空
加上set -u遇到未定义变量会报错,并且终止脚本继续运行
脚本内容
#set -u
name=shark
echo $name
echo $names
运行脚本会报错
![](https://img.haomeiwen.com/i18861860/317c203304735aaf.png)
也可以在脚本内添加set -u
set -x
这个可以看到每个执行的命令以及输出的结果
可以明显看到出错的地方
执行方法与set -u相同
set -e
脚本内有任何命令的返回值是非零,脚本都会停止执行
管道除外
set -o
当设置这个,管道内的所有命令都成功的话,脚本才会运行,否则脚本停止执行,当然,非管道的话同样也适用
扩展: &&与||
command1 && command2
如果命令1执行成功的话,执行命令2
command1 || command2
如果命令1执行失败的话,才会执行命令2
command1 || command2 && command3
如果命令1执行失败的话,命令2会执行,如果命令2执行成功,就会执行命令3
但是如果命令1执行成功的话,就会跳过命令2,直接执行命令3
网友评论