Linux运行shell脚本时,常常会发生syntax error near unexpected token `$'\r''或者syntax error: unexpected end of file等,诸如此类的报错信息出现的原因是因为在编写脚本内容时,在windows上操作,一些回车符或TAB符在Linux系统中是识别不了的。

当出现这类问题时,可以通过vi/vim 加-b参数可以看出文件中的回车符是否正常

# vim -b test.sh

在文件中,如果是Windows的字符会显示为 ' ^M '

以下为转换的三种方式,任选其一即可:

1、通过pycharm转换

将脚本文件通过pycharm软件打开,CTRL+A 全选,然后选择CRLF  --> LF-Unix and OS X(\n)

之后再将文本全选复制粘贴到Linux系统上即可

2、通过UltraEdit(UE)转换

将脚本文件通过UltraEdit(UE)软件打开,右键文件选择转换 --> DOS到UNIX(D)

转换之后就可以直接将文件保存拖拽到Linux上或者直接复制粘贴到Linux文件中

注意:这里用到的版本是UltraEdit 19,可能因为版本不通,转换功能键的位置不同,若不在上图所示的位置中,可以尝试选择主菜单(最上面的导航条)中的 文件-->转换

3、通过Linux转换

这里可以直接使用sed命令进行替换,命令如下:

# sed -i 's/\r//g' test.sh

 

 

Logo

更多推荐