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
如果设置,如果管道中的所有命令都成功退出,则返回零。 默认情况下禁用此选项
网友评论