2

在 Debians BASH 下,我可以执行以下操作:

foo=/path/to/some/file

cat $f[TAB]

如您所见,我可以通过按 TAB 来自动完成变量 $foo。

在 Ubuntu (11) 下,行为不一样(我在 bashrc 中激活了“/etc/bash_completion”)。

这是有效的:

echo $f[TAB]

这个不工作:

cat $f[TAB]

谁能给我一个提示,如何让最后一个工作?

4

1 回答 1

3

cat您可以通过执行以下操作删除提供的完成规范/etc/bash_completion

complete -r cat

或者您可以查看是否在/etc/bash_completion您正在使用的 Bash 版本中修改工作中提供的完成选项:

complete -F _longopt -o filenames -o bashdefault cat

如果您使用的是最新的 Bash 4.2 补丁版本,有一个选项可能会有所帮助(我没有尝试过):

shopt -s direxpand
于 2012-06-29T11:08:52.093 回答