SSH:如何获得在ssh之后点击标签时自动完成的服务器列表?

inputssh后,当我完成标签填写时,我得到一个我可以ssh进入的服务器列表。 我怎样才能得到一个单一的命令相同的名单?

伪命令是:

ssh --list-available-servers

我无法find/usr/share/bash-completion/completions/ssh的技巧

你可以在函数_ssh()的结尾看到ssh的configuration文件和以后的地方

 _known_hosts_real -a -F "$configfile" "$cur" 

这是从已知的主机文件中提取主机名称。

你可以手工调用这个命令,但是结果是以variables返回的,而不是写出来的:

 $ . /usr/share/bash-completion/completions/ssh # doesn't have to be required $ COMPREPLY=(); _known_hosts_real -a "" && echo ${COMPREPLY[*]} 

您将从已知主机文件( ~/.ssh/known_hosts )中获取build议主机的列表。

如果你还想要configuration文件的信息,你还需要添加configuration文件参数:

 $ COMPREPLY=(); _known_hosts_real -F ~/.ssh/config -a "" && echo ${COMPREPLY[*]}