2016-02-12 64 views
0

我有一個腳本,需要幾個參數,包括主機名:自動完成主機名的腳本參數

./MyScript.sh -p param1 -q param2 hostname1 hostname2 hostname3 ...

因爲殼可以像ssh命令選項卡完整的主機名,我不知道是否可以設置同樣的事情爲我的劇本。我知道BASH_COMPLETION環境變量和它指向的腳本。但我不知道這些是否是我需要修改的東西。

回答

1

查閱有關Programmable Completion Builtins的手冊頁。您可以通過-A hostnamecompgencomplete來完成主機名稱。雖然這只是給你本地知道主機名,它是一樣的ssh這樣做,它應該是你想要的。

例子:

$ complete -A hostname foo 
$ foo <tab><tab> 
1

有可用的here教程,另一個很好的資源是有許多標準工具here補全bash補項目。

如果您想要完成,然後主機的短名單,這可能對您不夠:

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