用于自动完成转义的bash选项卡$
在shell(用于自动完成转义的bash选项卡$,bash,bash-completion,Bash,Bash Completion,在shell(gnubash,版本4.2.47(1)-release(x86_64-suse-linux-GNU))中,当我点击tab进行自动完成时,变量名完成后会转义“$”,但如果没有完成,则只会发出铃铛声。例如 $ ls $JDK_H<tab> 在旧的GNUBash版本3.2.51(1)发行版(x86_64-suse-linux-GNU)上,它没有在完成后转义“$”,这正是我想要的 有没有一种方法可以让这种老行为不产生强烈的副作用?我的BASHOPTS和SHELLOPTS是:
gnubash,版本4.2.47(1)-release(x86_64-suse-linux-GNU)
)中,当我点击tab进行自动完成时,变量名完成后会转义“$”,但如果没有完成,则只会发出铃铛声。例如
$ ls $JDK_H<tab>
在旧的GNUBash版本3.2.51(1)发行版(x86_64-suse-linux-GNU)上,它没有在完成后转义“$”,这正是我想要的
有没有一种方法可以让这种老行为不产生强烈的副作用?我的BASHOPTS和SHELLOPTS是:
# (indented for readability)
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote
:force_fignore:histappend:interactive_comments:login_shell
:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history
:interactive-comments:monitor
谢谢。我正在使用SLESSP11
--更新。其他补全操作似乎正常工作,例如,
cd
或echo
不退出$
。我还立即从我的/etc/bash.bashrc
中注释掉了/etc/share/bash completion/bash_completion
,它停止了$-转义。所以它看起来像是某种完整的配置问题 最近的bash版本引入了一些与此相关的兼容性问题。试着这样做:
complete -r # temporarily disable all completion rules
shopt -s direxpand
指向邮件列表中报告的类似问题的链接:
complete
下看到了大量的配置;所以我立即从/etc/share/bash completion/bash\u completion
中注释了/bashrc.bashrc
,现在cd
就像ls
一样工作。所以它看起来像某种complete
配置问题忘记添加,shopt-s direxpand
不会更改此行为。通过添加一些链接进行更新。感谢链接和提示。它声称问题已在4.2.45中解决,但我正在运行bash 4.2.47,并且仍然可以看到它。
complete -r # temporarily disable all completion rules
shopt -s direxpand