http://www.ruanyifeng.com/blog/2017/11/bash-set.html
#!/usr/bin/env bash
set -u
echo $a
echo bar
$ bash script.sh
bash: script.sh:行4: a: 未绑定的变量
#!/usr/bin/env bash
set -x
echo bar
$ bash script.sh
+ echo bar
bar
#!/usr/bin/env bash
foo
echo bar
$ bash script.sh
script.sh:行3: foo: 未找到命令
bar
#!/usr/bin/env bash
set -e
foo
echo bar
$ bash script.sh
script.sh:行4: foo: 未找到命令
#!/usr/bin/env bash
set -e
foo | echo a
echo bar
$ bash script.sh
a
script.sh:行4: foo: 未找到命令
bar
#!/usr/bin/env bash
set -eo pipefail
foo | echo a
echo bar
$ bash script.sh
a
script.sh:行4: foo: 未找到命令