Ubuntu 22.04下禁用Shell自动补全时对$符号的转义
Ubuntu 22.04下禁用Shell自动补全时对$符号的转义
我太懂你这种烦躁的感觉了!Ubuntu 22.04里bash的自动补全确实改了行为,之前顺手的变量路径补全突然就失效,$符号被自动转义成$,导致变量没法展开,完全没法正常补全目录里的文件。别着急,下面几个方法应该能帮你解决这个问题:
启用direxpand选项
这是最直接有效的办法,bash的direxpand选项专门用来控制路径补全时的变量展开行为。你只需要在~/.bashrc文件的末尾添加一行:shopt -s direxpand然后执行
source ~/.bashrc让设置立即生效。之后再输入ls $dir1/按下tab键,shell就会自动把$dir1展开成/usr/local/bin,然后正常补全目录下的文件,不会再给$符号加转义符了。调整补全的引号与转义规则
如果上面的方法没起作用,还可以通过bind命令修改bash补全的细节行为,同样在~/.bashrc里添加以下两行:bind 'set completion-quote-display off' bind 'set completion-escape-meta off'执行
source ~/.bashrc生效后,补全时就不会自动对$符号进行转义处理了。排查自定义补全脚本(可选)
如果你之前自己加过一些bash补全的自定义脚本,可能会覆盖默认的补全行为。可以暂时把这些脚本移到其他目录,然后重启终端测试一下,看是不是脚本导致的问题。
备注:内容来源于stack exchange,提问作者Chan Kim
相关产品推荐
相关产品推荐

