我已经定义了一个 bash_completion 脚本。在某些情况下,我想回退到大多数命令默认发生的基于文件的基本完成。为此,我正在使用compgen
,但我无法让它进入子目录。
想象一下,我在一个目录中运行 compgen,该目录包含一个名为bin
. 当我跑步compgen -f bi
时,我得到了bin
。我希望这会返回bin/
,然后允许我再次推动 TAB 以下降到bin
目录的内容中。但取而代之的是,complete
只获得一个值并假设它已到达处理结束。这与 bash 完成的工作方式不同,通常ls bi[TAB]
会导致ls bin/
.
由于我无法让它工作,暂时我已经编写了自定义代码,该代码下降到目录中以执行正确的 bash 完成,但必须有一种方法可以compgen
直接执行此操作。