12.2 Shell_set用法

set -u

当脚本中遇到未定义的变量时,默认是忽略。
有时候这并不是开发者想要的。
假如有未定义的变量,应该报错,并且终止脚本继续运行。
set -u 就可以办到
示例

#!/usr/bin/env bash
set -u

echo $a
echo shark

执行报错

$ bash set.sh
set.sh: line 13: a: unbound variable

set -x

这个调试脚本是使用,可以看到每个执行的命令,和执行命令后的输出结果。

#!/usr/bin/env bash
set -x

echo shark

bash -x set.sh 相同的含义。

set -e

脚本中有任何命令的返回值是非零,脚本则停止继续执行。
对管道的命令无效,比如:

foo | echo shark

foo 不是 shell 中的命令,执行会报错,但是其后面有个管道,最终管道后的 echo 命令执行成功了,这种情况下 脚本会继续执行。

set -o pipefail

如果设置,如果管道中的所有命令都成功退出,则返回零。 默认情况下禁用此选项

心得

set -u

脚本遇到未定义的变量是,默认是忽略。

set -u在脚本中设置之后,若有未定义的变量,则会报错,并终止脚本继续运行

该参数可以写在脚本中

set -x调试命令

该命令可以在执行脚本时加入,此时会显示脚本执行的顺序,相当于java的debug过程。
写在脚本中和bash -x script.sh相同的含义

你可能感兴趣的:(12.2 Shell_set用法)