dan*_*ann 5 bash autocomplete compgen
作为我正在编写的更大的自动完成功能的一部分,我想使用 compgen 生成文件列表。我阅读了compgenand的 bash 手册条目complete,从那里我认为该选项-G "*"将是解决方案。但是,我无法让它工作:无论我的输入如何,都会显示当前目录中的文件列表,即:
$ cmd <Tab>
aa bb cc
$ cmd a<Tab>
aa bb cc
$ cmd aa<Tab>
aa bb cc
Run Code Online (Sandbox Code Playgroud)
因此,我尝试通过使用来调试它complete,它支持与 compgen 相同的选项,但我得到了相同的结果:
$ complete -G "*" cmd
$ cmd a<Tab>
aa bb cc
Run Code Online (Sandbox Code Playgroud)
我也试过complete -o filenames,但这也不起作用..
我自己找到了答案:我必须使用该-A action选项:
compgen -o filenames -A file ...
complete -o filenames -A file
Run Code Online (Sandbox Code Playgroud)