我所寻找的不是如何在 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 手册更多细节。