在 Debians BASH 下我可以执行以下操作:
foo=/path/to/some/file
cat $f[TAB]
如您所见,我可以通过按 TAB 键自动完成变量 $foo。
在 Ubuntu (11) 下,行为不一样(我在 bashrc 中激活了“/etc/bash_completion”)。
这正在工作:
echo $f[TAB]
这个不起作用:
cat $f[TAB]
任何人都可以给我提示,如何让最后一个工作吗?
最佳答案
您可以通过以下操作删除 /etc/bash_completion
为 cat
提供的完成规范:
complete -r cat
或者您可以查看修改 /etc/bash_completion
中提供的完成选项是否适用于您正在使用的 Bash 版本:
complete -F _longopt -o filenames -o bashdefault cat
如果您使用的是 Bash 4.2 的最新修补版本,有一个选项可能会有所帮助(我还没有尝试过):
shopt -s direxpand
关于bash - 如何激活 FULL $var 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11259456/