在写脚本的时候常常出现一种状况就是,在windows下写,写完以后拷进去执行,但是考进去却发现报错,而错误却又很奇葩,例如个人for循环语句出现syntax error near unexpected token do错误,仔细看了几遍本身写的shell脚本,发现并无错误,最后想到可能就是换行符linux
这种状况发生的缘由是由于你所处理的文件换行符是dos格式的”\r\n”
可使用cat -v 文件名 来查看换行符是不是,若是是上述的,则行结尾会是^m
须要转换成linux/unix格式的”\n”
具体转换办法就是转换换行符
能够用sed命令处理一下文件,命令以下:
sed ‘s/\r//g’ 原文件 >转换后文件
sed 命令的参数中 ”表明决定引用参数,不容许参数中的值让shell解释,s表明替换 /后面跟的是被替换的内容,后面的//表明替换后的内容为空
推荐使用EditPlus或者UltraEdit,使用这些文本编辑工具,在保存时,能够选择保存的文字编码类型,好比选择UNIX格式换行符。我比较喜欢EditPlus的join lines功能,把多行的值变成一个逻辑行,便于写到shell脚本中做为循环的变量shell