如何为命令行开关启用Bash可编程完成?

时间:2016-11-18 13:06:29

标签: bash shell autocomplete

在我的一个系统上,bash可编程完成适用于这样的基本命令:

$ ls -l t/
01_createTicket/               02_methods.t
[etc...]

但是,它不适用于我的自定义命令中的开关:

$ ./test_all.pl --environment=test --verbosity=1 --test=t/
[will not autocomplete; does not show contents of directory]

在我所有其他系统上,第二个示例有效。

我需要在我的系统上调整什么才能在长命令结束时启用bash完成?

1 个答案:

答案 0 :(得分:2)

由于您的非工作系统具有自动完成条目,您的工作系统不会像在complete -p输出中看到的那样在非工作系统上运行complete -r以清除完成条目(source)。

修改可以在任何启动文件中加载完成:/etc/profile~/.bash_profile~/.bash_login~/.profile。它们按此顺序进行测试(bash(1), section "Invocation")。我怀疑您的/etc/profile正在加载完成情况,这就是您complete -r需要.bash_profile清除它们的原因。