我在另一个shellcript中调用一个shellcript,并且被调用的一个命令删除了一个我不想被执行的文件夹,比如这个
$ rm ../temp -rf
有没有办法在不更改调用的脚本内容的情况下阻止执行此命令?
答案 0 :(得分:0)
您可以在脚本中定义这样的别名:
alias rm='echo SAFE'
默认情况下,别名仅在交互式shell中起作用,因此您必须使用以下命令更改此行为:
shopt -s expand_aliases
在您的脚本中并获取另一个脚本(您无法更改的脚本):
source the_other_script.sh
或
. the_other_script.sh
除非另一个脚本在子shell中运行rm
,否则这将有效。
另一种更安全的方法是创建自己的rm
命令,该命令不执行任何操作(或只打印出其参数,以便您知道发生了什么),将其放入目录并将此目录作为第一个目录放入这样的PATH
环境变量(Korn shell语法):
$ export PATH=/path/to/your/dummy/rm/replacement:$PATH