Linux 脚本安全设置set-u set-e

举个脚本误删除整库例子:

#!/bin/bash
DIR=/myFolder
rm -rf $DiR/*

从上面的例子可以看到,第三行的DiR写错了,DiR没有被赋值,原本脚本的功能是删除myFolder下的所有文件,结果最后执行为 rm -rf /*

为了防止这样灾难出现,我们可以在脚本最前加上

#-u Treat unset variables as an error when substituting.
#-u 当替换(发现)一个未被赋值的变量时报错
set -u

另,为了防止报错后后序脚本继续执行,可以在脚本最前面加上

#-e  Exit immediately if a command exits with a non-zero status.
#-e 当一行命令返回值为非0时(命令执行错误),直接退出脚本
set -e

你可能感兴趣的:(Liunx)