Linux 自动完成脚本参数的主机名

Linux 自动完成脚本参数的主机名,linux,bash,Linux,Bash,我有一个脚本,它接受多个参数,包括主机名: /MyScript.sh-p param1-q param2主机名1主机名2主机名3… 由于shell可以为ssh等命令设置完整的主机名,我想知道是否可以为我的脚本设置同样的内容。我知道BASH\u COMPLETION环境变量及其指向的脚本。但我不知道这些是否是我需要修改的内容。查看手册页面。您可以将-主机名传递给compgen或complete以获得主机名的完整信息。虽然这只是为您提供本地已知的主机名,但它与ssh所做的相同,因此它应该是您想要的

我有一个脚本,它接受多个参数,包括主机名:

/MyScript.sh-p param1-q param2主机名1主机名2主机名3…


由于shell可以为
ssh
等命令设置完整的主机名,我想知道是否可以为我的脚本设置同样的内容。我知道
BASH\u COMPLETION
环境变量及其指向的脚本。但我不知道这些是否是我需要修改的内容。

查看手册页面。您可以将
-主机名
传递给
compgen
complete
以获得主机名的完整信息。虽然这只是为您提供本地已知的主机名,但它与
ssh
所做的相同,因此它应该是您想要的

例如:

$ complete -A hostname foo
$ foo <tab><tab>
$complete-主机名foo
$foo

查看有关的手册页。您可以将
-主机名
传递给
compgen
complete
以获得主机名的完整信息。虽然这只是为您提供本地已知的主机名,但它与
ssh
所做的相同,因此它应该是您想要的

例如:

$ complete -A hostname foo
$ foo <tab><tab>
$complete-主机名foo
$foo

有一个可用的教程,另一个很好的资源是bash completion项目,它有许多标准实用程序的完成

如果您有一个要完成的主机的简短列表,那么这可能就足够了:

complete -W "lisa homer bart marge maggie" MyScript.sh

有一个可用的教程,另一个很好的资源是bash completion项目,它有许多标准实用程序的完成

如果您有一个要完成的主机的简短列表,那么这可能就足够了:

complete -W "lisa homer bart marge maggie" MyScript.sh