我在命令行上有这个:
ln -sf $PWD/wine-
Run Code Online (Sandbox Code Playgroud)
然后我点击Tab完成文件名。在早期版本的 Ubuntu 中,这可以很好地完成wine-文件名(并且$PWD在当时会扩展副作用)。但现在它变成了
ln -sf \$PWD/wine-
Run Code Online (Sandbox Code Playgroud)
这根本不是我的意思,也没有完成任何事情,因为该文件并不是从字面上开始的 $.
我如何完成恢复到较少损坏的行为?
set 告诉我这些是我当前的设置:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
Run Code Online (Sandbox Code Playgroud) 当我在 Ubuntu 20.04 LTS 终端上使用环境变量名称并按Tab自动完成时(我已经测试了 Ubuntu 20.04 LTS 安装和终结器附带的两个终端,两者的行为相同),Ubuntu 在美元符号 $ 之前插入反斜杠 \ ,导致环境变量不再按预期工作。
例如,之前在 Ubuntu 18.04 LTS 终端上:
ll $HOME/Deskt (+TAB) -> ll $HOME/Desktop/
Run Code Online (Sandbox Code Playgroud)
现在在 Ubuntu 20.04 LTS 终端上:
ll $HOME/Deskt (+TAB) -> ll \$HOME/Desktop/
Run Code Online (Sandbox Code Playgroud)
不用说,后者的结果是
ls: cannot access '$HOME/Desktop/': No such file or directory
Run Code Online (Sandbox Code Playgroud)
那么如何禁用自动\插入呢?