任何时候我跑步ssh
(或scp
或lftp
),我都想gpg-connect-agent updatestartuptty /bye
第一个跑。(说来话长。)
目前,我在.bashrc中定义了一个函数:
ssh()
{
gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1
$(which ssh) "$@"
}
这工作得很好,但我想象如果在另一个 ssh 已经有类似别名的系统上使用,可能会出现可移植性问题。
有没有办法定义预执行“回调”ssh
而不覆盖ssh
命令本身?(我知道您可以trap DEBUG
在每个命令之前使用它来运行给定的命令,但我想将其限制为我需要的命令。)
答案1
我建议这样写:
ssh()
{
gpg-connect-agent updatestartuptty /bye &>/dev/null
command ssh "$@"
}
请参阅help command
此处了解更多详情。
并且,没有其他“预回调机制”。如果有,你所做的基本上就是“它”。