0

bash オートコンプリート スクリプトが特定の文字列を正しく展開することをテストする単体テストを作成したいと思います (カーソルが末尾にあると仮定します)。

(私は思う)文字列を入力して、の出力をキャプチャできるようにしたいと思いますCOMPREPLY

たとえば、 offer を置くときにgit b<TAB><TAB>それをテストしたいとしますbisect blame branch bundle。その出力をbash関数から取得するにはどうすればよいですか?

紛らわしい場合は、次のようなことができるようにしたいと思います。

output=$(get_compreply "git b")
echo "$output"
> bisect   blame    branch   bundle
4

2 に答える 2

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
于 2012-08-01T10:58:14.497 に答える
1

はい、どうぞ:

compgen -c YOUR_INPUT_BEFORE_TAB

于 2012-08-01T09:36:17.443 に答える