BASH 脚本的 set 命令有很多参数,在实际应用中有些写错的内容,反而被脚本忽略了。set -u 就可以让脚本遇到错误时停止执行,并指出错误的行数信息。本文主要介绍 set -u (set -o nounset)命令的相关用法。
执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。
#!/usr/bin/env bash echo $a echo bar
上面代码中,$a是一个不存在的变量。执行结果如下。
$ bash script.sh bar
可以看到,echo $a输出了一个空行,Bash 忽略了不存在的$a,然后继续执行echo bar。大多数情况下,这不是开发者想要的行为,遇到变量不存在,脚本应该报错,而不是一声不响地往下执行。
set -u就用来改变这种行为。脚本在头部加上它,遇到不存在的变量就会报错,并停止执行。
#!/usr/bin/env bash set -u echo $a echo bar
运行结果如下。
$ bash script.sh bash: script.sh:行4: a: 未绑定的变量
可以看到,脚本报错了,并且不再执行后面的语句。
-u还有另一种写法-o nounset,两者是等价的。
set -o nounset
以上就是 shell 脚本 set -u 的作用。
: » Shell bash 脚本 set -u 命令用法详解
原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/252570.html