我在另一个shellscript中调用一个shellscript,被调用的有一个命令来删除一个我不想被执行的文件夹,就像这样
$ rm ../temp -rf
有没有办法在不更改调用脚本内容的情况下阻止执行此命令?
我在另一个shellscript中调用一个shellscript,被调用的有一个命令来删除一个我不想被执行的文件夹,就像这样
$ rm ../temp -rf
有没有办法在不更改调用脚本内容的情况下阻止执行此命令?
您可以在脚本中定义这样的别名:
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