在Windows上写完Python脚本,丢到Linux环境下运行,经常发生运行报错的情况:
此处省略艰辛的排查过程N万个字…
用file命令查看文件类型:
可以看到行分隔符是CRLF模式,这是Windows格式的换行符,
会在每行行末加多一个^M,Linux不识别,具体可以查看CRLF和LF的区别。
用 cat -v 命令查看文件可以看到,行末都有一个^M符号。
替换掉^M符号,重新生成一个文件:
cat -v oldfile.py | sed -e '1,$s/\^M$//g' > newfile.py
给上执行权限,执行脚本,问题解决:
ps:只去掉了行末的 ^M 符,所以print语句输出的 ^M还在。