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

WSL创建目录时出现不可打印字符致cd命令失败求助

问题原因:Windows换行格式引发的不可打印字符问题

这是因为你的脚本使用了Windows的**CRLF(\r\n)换行格式,而WSL中的bash只识别Linux/Unix的LF(\n)**换行符。

当bash执行脚本时,会把每行末尾的\r(回车符,不可打印)当成命令内容的一部分。比如export TOP_FOLDER=pwd``这行,执行后pwd的输出路径后面会被带上\r,后续变量引用过程中还可能让这个\r累积成多个,最终cd命令试图访问的路径变成了/mnt/e/myfolder\r\r\r——这个路径实际不存在,自然报错。

解决办法

  • 转换现有脚本的换行格式:用WSL里的dos2unix工具处理脚本,执行:
    dos2unix test.sh
    
    如果没装dos2unix,先执行sudo apt install dos2unix完成安装。
  • 后续编写脚本时,把编辑器的换行格式设为LF:比如VS Code右下角可以直接切换,Notepad++里选「编辑」→「文档格式转换」→「转换为UNIX格式」。
  • 临时修复:不想转格式的话,在变量赋值时手动去掉回车符,把export TOP_FOLDER=pwd``改成:
    export TOP_FOLDER=$(pwd | tr -d '\r')
    

内容的提问来源于stack exchange,提问作者Ray H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:15:57