我想进行单元测试,测试bash自动完成脚本是否正确扩展了某个字符串(让我们假设光标在最后)。
(我认为)我希望能够输入一个字符串并捕获COMPREPLY
的输出。
例如,假设我在git b<TAB><TAB>
提供bisect blame branch bundle
时提供测试。如何从bash函数中获取输出?
如果令人困惑,我希望能够做到这样的事情:
output=$(get_compreply "git b")
echo "$output"
> bisect blame branch bundle
答案 0 :(得分:1)
你在这里:
compgen -c YOUR_INPUT_BEFORE_TAB
答案 1 :(得分:1)
首先,您是否为git
定义了完成? (运行complete -p
的输出是什么?)
此页面描述了构建compspecs:http://www.debian-administration.org/article/An_introduction_to_bash_completion_part_2
这是一个简化的例子: -
$ output=$(compgen -W "bisect blame branch bundle" b)
$ echo $output
bisect blame branch bundle