键入 "first command"时 Bash 可编程完成

标签 bash command bash-completion

有没有办法控制在 bash4 命令提示符下键入的第一个命令的完成?

我可以用完整的 -E 来控制“空行”的完成,但是一旦输入了一些字符,bash(或者可能是 readline)就会给我所有来自 PATH 的文件名,内置命令(if, then, else ... ) 和完成尝试时的功能 (TAB)。

我能够通过在 PROMPT_COMMAND 中取消设置 PATH 并通过绑定(bind)函数来捕获 DEBUG 来恢复它来避免 PATH 条目,但是没有摆脱 bash bultin 命令完成的运气。

有什么想法吗?

最佳答案

这是 bash 可编程完成工具设计中名副其实的弱点。即使是“默认”命令完成 -D 也只对空行上的命令生效(前提是没有指定 complete -E)。缺少类似 complete -I 的内容(用于不完整输入的命令)。

关于键入 "first command"时 Bash 可编程完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450289/

相关文章:

linux 在一个文件中搜索多个单词

windows - 在命令行输出中搜索字符串

bash - 如何激活 FULL $var 完成

bash - 覆盖 git clone 的 bash 补全

Bash,如何修改占位符后文件的所有行?

linux - Nginx 无法启动。/usr/sbin/nginx 和/var/run/nginx.pid 不存在

mysql - Bash脚本无法向mysql发送指令

linux - 使用 Bash 重命名和移动通配 rune 件

linux - 一起使用 echo 和 grep

php - 如何使用 php 查找特定 IP 中的 HTTP 进程总数?