举个脚本误删除整库例子:
#!/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