Fork me on GitHub

Cygwin Windows 换行符转换

在Windows下编辑的Shell脚本,使用Cygwin仿Linux环境运行,出现 $’\r’: 未找到命令错误

因为在Dos or Window下回车键实际上输入的是 回车(CR)换行(LF),而Linux or Unix下回车键只输入 换行(LF),所以文件在每行都会多了一个 CR,Linux下运行时就会报错找不到命令,需要把Dos文件格式转换为Unix格式

1. 安装dos2unix组件

Cygwin 官网

下载Cygwin,双击setup-x86_64.exe,选择从本地或者internet安装,选择dos2unix组件进行安装

安装插件

  • 测试脚本:
1
2
3
4
5
6
// windows下记事本编辑
#!/bin/sh

d=`date +%Y%m%d`

echo $d
  • Cygwin直接运行:

转换前运行

2. 单文件转换

1
dos2unix test.sh

转换

  • Cygwin转换后运行:

转换后运行

3. 目录批量转换

1
find . -type f -exec dos2unix {} \;

将转换后的文件直接upload到linux服务器上,也能正常运行


转载请注明出处:https://github.com/imperio-wxm


Thank you for your support.