免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3081 | 回复: 11
打印 上一主题 下一主题

[文本处理] 高级shell技巧问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-11-19 13:28 |只看该作者 |倒序浏览
cat /opt/worker/save.log结果如下:
worker    :0
worker    :1
worker    :2

pidof raker结果如下:
19801 19802 19803 19804

繁琐的方式运行命令如下:
repare -r 0 19801
repare -r 1 19802
repare -r 2 19803
repare -r 0 19801

用shell实现有没有好的方式?

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
2 [报告]
发表于 2012-11-19 13:49 |只看该作者
为啥0要重启两次呢???

论坛徽章:
0
3 [报告]
发表于 2012-11-19 13:57 |只看该作者
回复 2# dn833
根据pidof结果的数量,0、1、2是循环的。

   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
4 [报告]
发表于 2012-11-19 14:14 |只看该作者
重启第一次后的pid号还能保证是19801吗?

论坛徽章:
0
5 [报告]
发表于 2012-11-19 14:38 |只看该作者
回复 4# dn833
不能保证。进程名是固定的,所以要根据pidof动态获取。
   

论坛徽章:
0
6 [报告]
发表于 2012-11-19 17:24 |只看该作者
没有人会吗?

论坛徽章:
0
7 [报告]
发表于 2012-11-19 18:40 |只看该作者
本帖最后由 hbmhalley 于 2012-11-19 18:47 编辑
  1. a=(`cut -d: -f2 /opt/worker/save.log`)
  2. b=(`pidof raker`)
  3. for ((i=0;i<${#b[*]};++i)); do repair -r ${a[i%${#a[*]}]} ${b[i%${#a[*]}]}; done
复制代码

论坛徽章:
0
8 [报告]
发表于 2012-11-20 09:07 |只看该作者
回复 7# hbmhalley


   

论坛徽章:
0
9 [报告]
发表于 2012-11-20 10:14 |只看该作者
好像还是有点小问题:再补充下:
a="0 1 2 3 4 5"
b="7458 7457 7456 7455 7454 7453 7452 7451"
如何是:
repair -r 0 7458
repair -r 1 7457
repair -r 2 7456
repair -r 3 7455
repair -r 4 7454
repair -r 5 7453
repair -r 0 7452
repair -r 1 7451

论坛徽章:
0
10 [报告]
发表于 2012-11-20 11:44 |只看该作者
没人响应吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP