码迷,mamicode.com
首页 > 其他好文 > 详细

脚本调试:一次换行符导致的报错

时间:2017-09-12 15:55:23      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:shell

今天早上用notepad写了个简单脚本,如下:

[root@master ~]# vim /wanwan/nginx_limits.sh 
#!/bin/bash
#nginx max open files-nums
for pid in $(ps aux |grep nginx|grep -v grep |awk ‘{print $2}‘)
do
cat /proc/${pid}/limits | grep ‘Max open files‘
done

调试的时候居然报错,如下:

[root@master ~]# bash /wanwan/nginx_limits.sh 
‘wanwan/nginx_limits.sh: line 4: syntax error near unexpected token `do
‘wanwan/nginx_limits.sh: line 4: `do

突然想到,可能是因为在windows下编辑的额,继续排查

技术分享

使用vim -b进行编辑,发现文件每一行后面都多了一个

解决方法:

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

再次查看文件的信息:

技术分享

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

技术分享

到此,完成




本文出自 “冰冻vs西瓜” 博客,请务必保留此出处http://molewan.blog.51cto.com/287340/1964504

脚本调试:一次换行符导致的报错

标签:shell

原文地址:http://molewan.blog.51cto.com/287340/1964504

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!