【Linux Shell脚本编程】set命令在shell脚本中的作用

TangLu 未命名 2017-06-12 4284 0

我们在一些系统脚本的最开始部分有时候会看到set命令,该命令是做什么用的呢?来看看常用的几个选项:

set -e:如果在脚本最开始时加了这个命令和选项,那么脚本在执行过程中只要遇到有一条命令执行错误($?不等于0),那么整个脚本就会退出,防止因为某条命令的出错导致更严重的问题

set -u:一般和-e选项连用。如果在脚本最开始时加了这个命令和选项,那么脚本在执行过程中遇到没有被声明过的变量时会认为执行错误而退出(比如rm $dir/*,如果变量没有被事先定义过,会发生删除根目录的情况

set +e | x | u:这个和"set -e | x | u"组合起来使用,有点类似其他编程语言的标签,在标签内的脚本才会受到影响。如下语句中,只有echo那一行会受到set -e的影响,set+e之后的语句就没有影响了:

set -e
echo "hello world"
set +e
echo "My god"


set -x:和bash -x一个作用,进行脚本调试,也同样支持set -x、set+x这样的用法

评论