gpt4 book ai didi

bash - 可以以编程方式调用 bash 完成吗?

转载 作者:行者123 更新时间:2023-11-29 08:48:32 25 4
gpt4 key购买 nike

我想要的是一个可以从程序调用的函数,这样它就完成了 bash 给出命令行和按下 TAB 键的位置的方式。

. /etc/bash_completion
generate_completions "command arg1 arg2" 17

会返回与

相同的东西
command arg1 arg2[TAB]

我还没有看到任何方法可以做到这一点。

最佳答案

我实际上必须这样做才能弄清楚 apt-get autocomplete 如何在 ubuntu 上工作(构建我自己的伪存储库工具 :)

这是一个多步骤的过程:

首先,complete -p 将以一组命令的形式为您提供所有完成的列表,您可以运行这些命令来复制配置。例如,假设您想要寻找 apt-get 的自动完成功能。然后:

$ complete -p | grep apt-get
complete -F _apt_get apt-get

这告诉您 shell 函数 _apt_get 被完成机制调用。

您需要重新创建函数使用的特殊变量,即 COMP_LINE(完整行)、COMP_WORDS(所有参数的 bash 数组——基本上拆分 COMP_LINE)、COMP_CWORD(索引,应指向最后一个值) 、COMP_POINT(在单词中进行自动完成的位置)和 COMP_TYPE(这是您告诉它您想要完成的方式,就像您点击 Tab 键一样)。

注意:阅读联机帮助页以获取更多信息——这就是我最初的想法。 man bash

关于bash - 可以以编程方式调用 bash 完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6713391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com