在我的 bash 脚本中,我有一些非常危险的行,例如:
rm -r *
如果它在某个文件夹中错误运行,那将是非常灾难性的。基本上,我需要添加一个 if 条件以使其不会触发,除非我是文件夹调用blah_pew_blah
,在这种情况下造成的损害可能很小。但我该如何检查呢?谢谢。
答案1
假设是现代 bash,您可以通过运行来获取当前目录的名称
basename $(pwd)
这可以用在条件语句中,例如
if test $(basename $(pwd)) != 'blah_pew_blah'; then
printf 'Not in expected directory, aborting!\n'
exit 0
fi
答案2
case `command -p pwd -P` in
*/foo ) find `pwd` -mindepth 2 -maxdepth 2 -type d -exec ...
esac
答案3
您正在寻找增加脚本的复杂性和混乱性的方法。正确的方法是使用完整路径调用命令:
rm -r /path/to/blah_pew_blah/*