bash 等号后制表符补全

Car*_*arl 4 bash autocomplete

在等号 (=) 之后按 TAB 键时如何让 bash 自动完成?例如启动 Abaqus,我使用命令行

abaqus job=
Run Code Online (Sandbox Code Playgroud)

并希望能够在“=”后按 TAB 并获取文件列表。现在,我可以在“=”后面插入一个空格,按 Tab 键获取文件列表,选择文件,然后删除空格。

我知道 bash 完成,但这种方式涉及很多,除非有人有一个确切的示例。

小智 5

你应该要么去学习如何摆弄 bash 的可编程完成(不适合胆小的人;-)),要么只是禁用

shopt -u progcomp
Run Code Online (Sandbox Code Playgroud)

您将得到经典的readline(3)命令/变量/文件名补全[1]。

如果可编程完成已被禁用但=<Tab>仍然不起作用,您应该检查COMP_WORDBREAKS变量并向其中添加=字符(如果尚未包含该字符)。

[1] 对我来说,对 Debian 的正确修复一直是

apt-get remove --purge bash-completion
Run Code Online (Sandbox Code Playgroud)

这将把它彻底连根拔起,并防止它偷偷回来。