"Aliasing" 个带参数的命令
"Aliasing" of Commands with Arguments
我知道有些命令可以通过shell取别名,比如
alias mv="cp"
但我想做一些类似的事情,但有论点(是的,我已经看到 other question,但我的问题略有不同)。类似于:
sshkill() {
service sshd restart
}
alias sshkill="killall sshd"
但这显然行不通
我希望防止用户直接杀死 sshd(至少是意外地)并使其重新启动(这是针对不止一次发生这种情况的服务器)。因此,除了 别名 ,有没有办法 阻止 命令 killall sshd
被执行,而是执行 service sshd restart
相反?
您想拦截killall
,所以:
killall() {
if [ "" = "sshd" ]; then
echo "some warning message, and perhaps service sshd restart"
else
command killall "$@"
fi
}
我知道有些命令可以通过shell取别名,比如
alias mv="cp"
但我想做一些类似的事情,但有论点(是的,我已经看到 other question,但我的问题略有不同)。类似于:
sshkill() {
service sshd restart
}
alias sshkill="killall sshd"
但这显然行不通
我希望防止用户直接杀死 sshd(至少是意外地)并使其重新启动(这是针对不止一次发生这种情况的服务器)。因此,除了 别名 ,有没有办法 阻止 命令 killall sshd
被执行,而是执行 service sshd restart
相反?
您想拦截killall
,所以:
killall() {
if [ "" = "sshd" ]; then
echo "some warning message, and perhaps service sshd restart"
else
command killall "$@"
fi
}