使用vim处理如下:
vim test.sh
:set ff=unix
:wq
或者使用替换方法,需要注意的是 ^M 符号是键盘 Ctrl+v+m
按出来的
vim test.sh
:%s/^M//g
:wq
其他类似问题:
$’\r’: command not found
是Windows和Linux的文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题。
windows 下的换行符是\r\n
,而 linux 下的换行符是\n
,没有识别\r
,所以会导致上述的报错,这个属于脚本编码的问题。
知识点
不同系统,有不同的换行符号:
- 在 Windows 下的文本文件的每一行结尾,都有一个回车(\n)和换行(\r)通用标识为CRLF
- 在 Linux 下的文本文件的每一行结尾,只有一个回车(\n)通用标识为LF
- 在 macOS 下的文本文件的每一行结尾,只有一个换行(\r)通用标识为CR