从文本文件中拉出shell脚本自动完成选项

时间:2014-09-02 19:38:27

标签: bash shell autocomplete

我有一个程序可以查找包含主机名和电话号码的文件。当主机名作为唯一的sys arg输入时,程序打开minicom并拨打它(在做了一些其他事情之后)。我正在尝试这样做设置我的脚本,以便我可以自动完成sys arg作为文件中包含的任何可能的主机名。我已经看到其他项目有点相似但不太适合我尝试做的事情并且没有让它们发挥作用。

源文件示例:

主机名5555555555

主机名5555555555

主机名5555555555

等..再多123次

1 个答案:

答案 0 :(得分:0)

这是您的函数的工作版本 - 只需更正$contents的值:

_UseGetOpt-2 () { local cur contents=$(sed 's/\(.*\) .*/-\1/' dialhosts)
COMPREPLY=() # Array variable storing the possible completions.
cur=${COMP_WORDS[COMP_CWORD]}
case "$cur" in -*) COMPREPLY=( $( compgen -W '$contents' -- $cur ) );;
esac
return 0
}

使用命令

激活它
complete -F _UseGetOpt-2 UseGetOpt-2.sh