rm -rf
rm -r
rm -f
rm
当运行这些命令中的任何一个时,我希望它们运行某个脚本。
像alias ?='some_script.sh'
(在这种情况下,问号表示带有任何参数的rm命令。)
如何做到这一点?我没有使用别名,任何有效的方法都可以。
答案 0 :(得分:2)
不要使用别名;定义一个函数:
rm () {
some_script.sh
command rm "$@"
}
以任何方式修改rm
的行为时的标准免责声明适用。不要这样做some_script.sh
旨在成为某种安全网。您可能会依赖它,如果在没有安装此安全网的计算机上运行rm
,您会感到非常惊讶。
答案 1 :(得分:1)
如果您的要求是在每个bash
命令上运行脚本,那么最好的方法是将它附加到bash
中的特殊变量,每次在提示符中输入命令时都会执行该变量
PROMPT_COMMAND
变量,您需要做的就是将脚本some_script.sh
附加到其中
$ PROMPT_COMMAND+="some_script.sh;"
或者如果您只想为命令rm
编写脚本,那么保留别名是最好的方法。在进行更改后,在~.bashrc
和source
添加该行。
alias rm="some_script.sh; rm"