在Windows系统中写的脚本,直接上传到服务器中不能直接运行,会出现以下错误:
- 使用 sh xxx.sh运行脚本
- 使用 ./ xxx.sh运行脚本
出现这个问题是因为Windows系统和Linux系统的换行符命令不同
| 系统 | 描述 | 名称 | 转义符 |
|---|---|---|---|
| Windows | 回车换行 | CRLF | nr |
| Linux | 换行 | LF | n |
使用file 命令查看当前文件格式
发现使用的是CRLF行终止符,是Windows中的换行符
使用vim编辑需要修改的文件
:set fileformat=unix 或 :set ff=unix直接修改文件格式
dos2unix ./xxx.sh在Windows中修改
我使用的是VS Code进行编写的脚本,右下角有CRLF或LF选项,将此选项修改为LF即可(同理,其他编辑器也可进行设置)



