如何将 bash 自动完成的结果作为字符串获取?

如何将 bash 自动完成的结果作为字符串获取?

我所寻找的不是如何在 bash 中为另一个程序添加自动完成功能,而是一种将 bash 中发生的事情的结果获取到字符串中的方法,基本上是:

autocomplete "/etc/apa"

将会回归

/etc/apache2/

所以我可以在我的脚本中使用它。

非常感谢您的帮助,因为我所能找到的只是如何使用“完整”的 bash 函数,它可以做一些不同的事情;)

干杯,拉斐尔

答案1

Bash有一个内置命令compgen可以帮到你很多。例如,如果你想知道输入以下内容时哪些目录会自动完成cd /etc/s<TAB>

$ compgen -d /etc/s
/etc/security
/etc/sgml
/etc/skel
/etc/ssh
/etc/ssl
/etc/subversion
/etc/sudoers.d
/etc/sysctl.d
$

然后,以下命令将告诉您将进入哪个目录cd /etc/se<TAB>

$ compgen -d /etc/se
/etc/security
$

compgen可以使用complete命令的大多数选项。请参阅bash 手册更多细节。

相关内容