0

我在另一个shellscript中调用一个shellscript,被调用的有一个命令来删除一个我不想被执行的文件夹,就像这样

$ rm ../temp -rf

有没有办法在不更改调用脚本内容的情况下阻止执行此命令?

4

1 回答 1

0

您可以在脚本中定义这样的别名:

alias rm='echo SAFE'

默认情况下,别名仅在交互式 shell 中起作用,因此您必须通过以下方式更改此行为:

shopt -s expand_aliases

在您的脚本中并获取另一个脚本(您无法更改的脚本):

source the_other_script.sh

或者

. the_other_script.sh

除非其他脚本rm在子 shell 中运行,否则这将起作用。

另一种更安全的方法是创建自己的rm命令,它什么都不做(或者只是打印出它的参数以便你知道发生了什么),把它放到一个目录中,然后把这个目录作为PATH环境变量中的第一个目录,就像这样(Korn shell句法):

$ export PATH=/path/to/your/dummy/rm/replacement:$PATH
于 2013-05-08T18:28:33.183 回答