我在 12.04 机器上使用了一堆别名。
例子:
alias pssh="tsocks ssh"
alias pscp="tsocks scp"
alias prdp="tsocks xfreerdp ..........SOMETHING ...."
Run Code Online (Sandbox Code Playgroud)
这些别名是对常规 linux 命令(scp、ssh 等)的修改,因此我希望这些别名具有与其原始对应项相同的自动完成规则。我不想编写自己的规则,因为常规命令的规则非常好。
在 12.04 中,以下内容完美运行:
complete -F _ssh pssh
complete -F _scp pscp
complete -F _ssh prdp
Run Code Online (Sandbox Code Playgroud)
这在 14.04 中不起作用。如果我尝试自动完成,我会收到以下错误:
bash: completion: function `_ssh' not found
Run Code Online (Sandbox Code Playgroud)
如果我在尝试 pssh 之前在 ssh 上自动完成,一切正常。据我所知,这是因为自动完成规则在使用之前没有加载。在加载 ssh 的自动完成规则之前,我的规则无效并导致错误。
如何解决此问题,如何正确地将别名挂接到为常规 linux 命令定义的自动完成规则中?