Linux下Wget命令行与脚本执行时文件名异常问题求助
问题原因及解决办法
核心原因
脚本文件使用了Windows风格的CRLF换行符(\r\n),而Linux系统默认使用LF换行符(\n)。当bash执行脚本时,会把每行末尾的\r(回车符)当成命令的一部分解析,导致文件名末尾被追加了\r,也就是你看到的'KOWA_SampleResult_ZAF_20221215.csv'$'\r'。
终端直接执行命令时,输入的命令是Linux环境下生成的,换行符是LF,所以不会出现这个问题。
解决办法
- 转换脚本换行符格式:
安装dos2unix工具后执行:
如果没有dos2unix kowa_automate.shdos2unix,用sed命令直接移除每行末尾的\r:sed -i 's/\r$//' kowa_automate.sh - 修改编辑器设置:
后续编辑脚本时,将编辑器的换行符设置为LF(Unix/Linux风格),比如在VS Code中可以点击右下角的换行符标识切换,vim/nano等原生Linux编辑器默认就是LF格式。
内容的提问来源于stack exchange,提问作者user3906976
相关产品推荐
相关产品推荐

