首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当在process bash的输出中找到某个字符串时触发操作

当在process bash的输出中找到某个字符串时触发操作
EN

Stack Overflow用户
提问于 2014-04-28 05:49:16
回答 2查看 233关注 0票数 0

我正在使用gphoto2监控摄像头生成的事件。

输出示例如下:

代码语言:javascript
复制
UNKNOWN PTP Event 400c, Param1 00010001
UNKNOWN PTP Event 400c, Param1 00010001
UNKNOWN PTP Event 400c, Param1 00010001
UNKNOWN PTP Event 2919, Param1 00000000
UNKNOWN PTP Event 400c, Param1 00010001
UNKNOWN PTP Event 400c, Param1 00010001
UNKNOWN PTP Event 2919, Param1 00000000
UNKNOWN PTP Event 400c, Param1 00010001

当一个新的图片被拍摄时是“事件400c”(现在从试验中知道一个错误),我想在输出中找到这样的字符串时运行一个脚本(以下载图像文件并继续我的过程),同时让监视器为将来的事件运行。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-04-28 06:44:51

代码语言:javascript
复制
tail -f data_file | while read l
  do 
   if [[ "$l" == *"Event 400c"* ]] 
   then 
        echo do something; 
   fi
done

当然,您需要将echo命令替换为您的命令

票数 2
EN

Stack Overflow用户

发布于 2014-04-28 05:53:09

通过管道将其传递给grep,然后将输入字符串通过管道传递到脚本

输入流:

代码语言:javascript
复制
$ cat temp
UNKNOWN PTP Event 400c,  Param1 00010001
UNKNOWN PTP Event 2919,  Param1 00000000
UNKNOWN PTP Event 400c,  Param1 00010001
UNKNOWN PTP Event 400c,  Param1 00010001
UNKNOWN PTP Event 2919,  Param1 00000000
UNKNOWN PTP Event 400c,  Param1 00010001

一些处理数据的脚本:

代码语言:javascript
复制
$ cat temp.py
#! /usr/bin/python
import sys
for line in sys.stdin:
    print "Input matching:", line, 

管道:

代码语言:javascript
复制
$ tail -f temp | grep 400c | python temp.py
Input matching: UNKNOWN PTP Event 400c,  Param1 00010001
Input matching: UNKNOWN PTP Event 400c,  Param1 00010001
Input matching: UNKNOWN PTP Event 400c,  Param1 00010001
Input matching: UNKNOWN PTP Event 400c,  Param1 00010001
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23329466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档