前端之家收集整理的这篇文章主要介绍了
脚本调试:一次换行符导致的报错,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
今天早上用notepad写了个简单脚本,如下:
- [root@master~]#vim/wanwan/Nginx_limits.sh
- #!/bin/bash
- #Nginxmaxopenfiles-nums
- forpidin$(psaux|grepNginx|grep-vgrep|awk'{print$2}')
- do
- cat/proc/${pid}/limits|grep'Maxopenfiles'
- done
调试的时候居然报错,如下:
- [root@master~]#bash/wanwan/Nginx_limits.sh
- 'wanwan/Nginx_limits.sh:line4:Syntaxerrornearunexpectedtoken`do
- 'wanwan/Nginx_limits.sh:line4:`do
突然想到,可能是因为在windows下编辑的额,继续排查

使用vim -b进行编辑,发现文件每一行后面都多了一个
解决方法:
- 在Vim中解决这个问题,很简单,在Vim中利用替换功能就可以将“^M”都干掉,键入如下替换命令行:
- 1)vi-bsetup.sh
- 2)在命令编辑行<就是:按ESC键然后shift+:冒号>输入:%s/^M//g
- 注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成
- 这样替换掉以后,保存就可以执行了。当然还有其他的替换方式比如:
- a.一些linux版本有dos2unix程序,可以用来祛除^M。
- b.catfilename1|tr-d"/r">newfile去掉^M生成一个新文件
再次查看文件的信息:

我们发现换行符已经没有了,执行下脚本:

到此,完成