执行命令时运行脚本,不管命令的参数如何
问题描述:
rm -rf
rm -r
rm -f
rm
当这些命令中的任何一个运行时,我希望它们运行某个脚本。执行命令时运行脚本,不管命令的参数如何
喜欢的东西alias ?='some_script.sh'
(在这种情况下,问号意味着任何参数的rm命令。)
如何才能做到这一点?我不必使用别名,任何工作都很好。
答
不要使用别名;定义一个函数:
rm() {
some_script.sh
command rm "[email protected]"
}
修改的rm
时的行为以任何方式应用于标准的免责声明。不要这样做some_script.sh
旨在成为某种安全网。如果在没有安装此安全网的机器上运行rm
,您可能会变得依赖它,并且感到不快。
答
如果您的要求是在每个bash
命令上运行该脚本,那么最好的方法是将其附加到bash
中的一个特殊变量,每次在提示中输入命令时都会执行该变量。
的PROMPT_COMMAND
变量,所有你需要做的就是你的脚本some_script.sh
追加到它像
$ PROMPT_COMMAND+="some_script.sh;"
或者,如果你想只在命令rm
脚本,然后保持一个别名是最好的方式做它。进行更改后,在您的~.bashrc
和source
中添加该行。
alias rm="some_script.sh; rm"