shell编程报错:“syntax error near unexpected token `”
在windows端用notepad++写了个shell脚本,然后通过ftp工具传到了linux,运行报错syntax error near unexpected token `,左看右看shell脚本都没有问题。
用命令vi -b 打开你的SHELL脚本文件,你会。发现每行脚本最后多了个^M。
在Vim中解决这个问题,很简单,在Vim中利用替换功能就可以将“^M”都干掉,键入如下替换命令行:
1)vi -b setup.sh
2)按ESC键 然后:冒号输入%s/^M//g
注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的。
这样替换掉以后,保存就可以执行了。当然还有其他的替换方式比如:
1、一些linux版本有 dos2unix 程序,可以用来祛除^M。
2、cat filename1 | tr -d "/r" > newfile 去掉^M生成一个新文件,还有sed命令等,凡是可以替换的命令都是可以用来新生成一个文件的。
更多方法可参考:http://mrcelite.blog.51cto.com/2977858/745576
参考:http://blog.csdn.net/xyp84/article/details/4435899