You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:34:30