when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.
bash 写多了,就不得不调试,然鹅又不像 python 一样有精彩的第三方库可以提供丰富的调试信息
多看点 bash 脚本,都应该见过下面这句话,那它是什么意思呢?
1 | set -uexo pipefail |
set -u : 对任何没有定义的变量($* 和 $@ 除外)的引用都将引发一个错误,并导致程序立即退出
set -x : 将所有执行的命令都打印到终端
set -o pipefail : 如果管道中的任何命令失败,则该返回代码被用作整个管道的返回代码;在没有设置这个选项的时候,即默认情况下,管道的返回代码是最后一个命令的返回代码
set -e : 在任何命令具有非零退出状态时立即退出
但是,set -e 并不是一个非常可靠的选项,因为有很多命令即使没有错误也会返回非零值
外部程序向 shell 传递的唯一信息是退出状态——按照约定,0 表示成功,非 0 表示 “某种错误”,Bourne shell 的开发人员决定,他们将创建一个特性,允许 shell 检查它运行的每个命令的退出状态,如果其中一个命令返回非零,则中止该特性,于是,set -e 就诞生了
更多的例子可以看这里
be yourself, everyone else is already taken.