在测试环境中我执行了:
rm -rf /var/www/html/${domain} /etc/nginx/sites-available/${domain} /etc/nginx/sites-enabled/${domain}
结果是html
,目录sites-available
及其sites-enabled
所有内容都被删除。
这句话有什么问题吗?鉴于我给出了完整路径,我错过了可能导致这种情况的原因,我认为它与 的递归性无关-r
。
答案1
如果域的值为空或未定义,您只需运行,例如rm -rf /var/www/html
.
您可以明确检查其domain
定义:
if [ -z "$domain" ]; then
echo "ERROR: domain is undefined" >&2
exit 1
fi
此外,set -u
在脚本中使用可以防止此类问题。这会导致使用未定义的变量导致错误:
$ set -u
$ echo $undefined_variable
bash: undefined_variable: unbound variable