我已经安装了“bash-completion”包。
ssh命令行上的完成(in bash)正在工作:ssh TAB-TAB将完成过去使用的主机ssh -TAB-TAB并将完成可用ssh选项。
但是,当我搜索当前定义的完成时:
$ complete | grep ssh
complete -F _known_hosts ssh-installkeys
complete -F _service /etc/init.d/ssh
...我发现没有完成注册ssh?!
complete -p ssh
bash: complete: ssh: no completion specification
当我检查ssh下面的完成脚本时,/usr/share/bash-completion/completions/ssh我发现它确实注册了ssh完成:
$ grep complete /usr/share/bash-completion/completions/ssh | grep ssh | grep -v '^#'
shopt -u hostcomplete && complete -F _ssh ssh slogin autossh sidedoor
那么为什么 ssh 完成不显示complete | grep ssh呢?bash如何完成ssh选项?