在Windows下编辑的Shell脚本,使用Cygwin仿Linux环境运行,出现 $’\r’: 未找到命令错误
因为在Dos or Window下回车键实际上输入的是 回车(CR)
和 换行(LF)
,而Linux or Unix下回车键只输入 换行(LF)
,所以文件在每行都会多了一个 CR
,Linux下运行时就会报错找不到命令,需要把Dos文件格式转换为Unix格式
1. 安装dos2unix组件
下载Cygwin,双击setup-x86_64.exe,选择从本地或者internet安装,选择dos2unix组件进行安装
- 测试脚本:
1 | // windows下记事本编辑 |
- Cygwin直接运行:
2. 单文件转换
1 | dos2unix test.sh |
- Cygwin转换后运行:
3. 目录批量转换
1 | find . -type f -exec dos2unix {} \; |
将转换后的文件直接upload到linux服务器上,也能正常运行
转载请注明出处:https://github.com/imperio-wxm