博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
脚本调试:一次换行符导致的报错
阅读量:6962 次
发布时间:2019-06-27

本文共 921 字,大约阅读时间需要 3 分钟。

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

1
2
3
4
5
6
7
[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

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

1
2
3
[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进行编辑,发现文件每一行后面都多了一个

解决方法:

1
2
3
4
5
6
7
在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西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1964504,如需转载请自行联系原作者
你可能感兴趣的文章
Linux下Eclipse+CDT的搭建
查看>>
python的tab键补全
查看>>
DevOps系列——公司Docker测试,打版,发布实战
查看>>
SQLITE3 使用总结
查看>>
python3学习之md5加密
查看>>
spring中MessageSource的配置使用方法3--ResourceBundleMessa
查看>>
Python在同一位置刷新显示进度信息
查看>>
解决获取微信用户信息 48001错误
查看>>
js操作单选框
查看>>
说说内存可见性
查看>>
oracle的内存spa与pga
查看>>
百度发力智能终端 百加异军突起
查看>>
《TableStore最佳实践:轻松实现轨迹管理与地理围栏》
查看>>
网络基本功(四):细说路由(上)
查看>>
我的友情链接
查看>>
解决大数据难题 阿里云MaxCompute获科技大奖
查看>>
修复Mysql数据库
查看>>
Java基础学习第八天
查看>>
MySQL备份导致的waiting for global read lock
查看>>
javascriptEvent对象
查看>>