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