当我将一个变量定义从脚本文件移动到另一个脚本文件以及其他几行代码时,我正在维护一些用于在开发服务器上自动构建的shell脚本。其结果是,这条线:在rm -rf语句中使用环境变量是不好的做法吗?
WEB=/home/server/web
得到了从脚本文件到另一个脚本文件移动,并不再在由第一脚本文件使用的环境。因此,在文件后面,
rm -rf $WEB/*
得到评估,以Linux的用户可怕的命令:rm -rf /*
我的问题是,您会考虑使用环境变量,这样的做法不好或认为是有害的?有点像经典
if (foo)
bar()
bar2()
其中移除变量声明的影响不会立即明显,可奇怪的路线?或者我应该在移动这样的东西时更加小心吗?
我只是想说些什么:如果你很小心你把/你的角色放在哪里,你可以减少伤害的可能性。例如。 'WEB =/home/server/web /',然后是'rm -rf $ WEB'。这不完全等同,但是对于大多数意图和目的。因此,如果$ WEB没有被意外设置,那么rm命令不会执行任何操作*,这比删除所有内容要好得多。 – crazy2be 2011-04-19 01:53:13