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

Bash脚本中cd命令报错:含\r目录不存在如何解决?

解决Bash脚本中cd命令出现\r的报错问题

这个报错里的$'myDir\r'说明目录名后面多了个Windows风格的回车符\r——这是因为你大概率在Windows系统下编辑了脚本文件,Windows用\r\n作为换行标记,而Linux/Unix系统只认\n,Bash会把多余的\r当成目录名的一部分,自然找不到对应的文件夹。

下面是几种解决办法:

  • 用dos2unix转换文件格式
    直接用dos2unix工具把脚本转换成Unix风格换行:

    dos2unix your_script.sh
    

    如果系统没装这个工具,用包管理器安装即可,比如Debian/Ubuntu系:

    sudo apt install dos2unix
    

    CentOS/RHEL系:

    sudo yum install dos2unix
    
  • 用sed手动删除\r
    没有dos2unix的话,用sed命令批量去掉每一行末尾的\r:

    sed -i 's/\r$//' your_script.sh
    
  • 编辑时直接用Unix换行格式
    如果你用VS Code、Sublime等编辑器,在编辑器右下角找到换行格式标记(比如显示CRLF),点击切换成LF(Unix风格),之后编辑脚本就不会再产生\r了。

你可以用cat -A your_script.sh查看脚本内容,带\r的行末尾会显示^M,转换完成后这个标记就会消失,再运行脚本就正常了。

内容的提问来源于stack exchange,提问作者blair.smyth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:34:53