Arc*_*ing 0 scripting bash testing rm deleted-files
在我执行的测试环境中:
rm -rf /var/www/html/${domain} /etc/nginx/sites-available/${domain} /etc/nginx/sites-enabled/${domain}
Run Code Online (Sandbox Code Playgroud)
其结果是html,sites-available和sites-enabled目录,用他们所有的内容删除。
这句话有什么问题?鉴于我给出了完整路径,我想念可能导致这种情况的原因,我认为这与-r.
如果 domain 的值为空或未定义,您只需运行,例如,rm -rf /var/www/html.
您可以明确检查domain已定义:
if [ -z "$domain" ]; then
echo "ERROR: domain is undefined" >&2
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
此外,set -u在您的脚本中使用可以防止此类问题。这会导致使用未定义的变量导致错误:
$ set -u
$ echo $undefined_variable
bash: undefined_variable: unbound variable
Run Code Online (Sandbox Code Playgroud)