使用现有完成功能进行多级 Bash 完成?
我创建了一个简单的 bash 函数: http://shr.im/ionyse-notify
我想添加一个小的完成文件。
我发现了两个有趣的函数:
- _known_hosts
- _user_at_host
我怎么能说对于第一个参数,它应该使用 _known_hosts 完成,第二个参数使用 _user_at_host
#!/bin/bash
_send-msg_complete()
{
local cur prev
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $(compgen -F _known_hosts -- $cur) )
elif [ $COMP_CWORD -eq 2 ]; then
COMPREPLY=( $(compgen -F _user_at_host -- $cur) )
fi
return 0
} &&
complete -F _send-msg_complete send-msg
这是我所拥有的,但它不起作用。怎么了 ?
I created a simple bash function : http://shr.im/ionyse-notify
I would like to add a little completion file.
I found two interesting functions :
- _known_hosts
- _user_at_host
How can I say that for the first argument, it should complete using _known_hosts and for the second using _user_at_host
#!/bin/bash
_send-msg_complete()
{
local cur prev
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $(compgen -F _known_hosts -- $cur) )
elif [ $COMP_CWORD -eq 2 ]; then
COMPREPLY=( $(compgen -F _user_at_host -- $cur) )
fi
return 0
} &&
complete -F _send-msg_complete send-msg
Here is what I have, but it doesn't work. What's wrong ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上,这很简单:
Actually, it is quite simple :