问题描述:
执行脚本时报错如下:
使用 cat -A xxx.sh 命令查看发现每行结尾有^M,是因为这个脚本是在Windows下创建的文本文件;
解决办法:
1. 使用dos2unix命令
但是这个命令在这台服务器上不能使用,于是使用下面这个方法;
sed -e 's/.$//' xxx.sh > xxx.sh
注:'/015' 是8进制;
执行完命令后, xxx.sh 里面是空的,再把脚本内容粘贴进 xxx.sh ,此时用cat -A xxx.sh 命令查看发现每行结尾没有^M了,而是正常的Linux文本,行结尾是$号;
如果不想粘贴,可以把改完的写入到另外一个文件,命令如下:sed -e 's/.$//' xxx.sh > yyy.sh ,此时用cat -A yyy.sh 命令查看yyy.sh行结尾是$号;
除此之外,还有另外一种方法:
cat xxx.sh |tr -d '/015' >yyy.sh