首页
学习
活动
专区
圈层
工具
发布

OSX脚本
EN

Stack Overflow用户
提问于 2014-04-30 00:12:38
回答 2查看 154关注 0票数 1

我不做太多的shell脚本,但实际上我想这样做:

  1. 运行命令“咕噜检查”约30次(进程需要60秒)。
  2. 对该命令的输出执行“一些随机错误消息。失败”的正则表达式。在哪里“失败”是我正在寻找的东西,但我想捕捉整个句子。
  3. 将关联行写入文件。 #!/bin/bash 执行命令COUNTER=0 // -lt =regex(/\/-lt./) //写错误,让COUNTER=COUNTER+1完成
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-30 00:30:01

代码语言:javascript
复制
counter=0
while [  $counter -lt 30 ]; do
    grunt check | grep Failed
    let counter=counter+1 
done > some file

上面的代码使用管道来捕获grunt命令的输出并将其发送给grepgrep搜索输出并打印包含单词Failed的任何行。然后将任何这样的行发送到名为somefile的文件。

作为次要的一点,我已经将计数器转换为小写。这是因为系统使用大写环境变量。如果您练习使用小写的,那么您不会意外地覆盖一个。(在这种情况下,没有名为COUNTER的系统变量,因此您是安全的。)

另一种计算到30的方法:

您可能会发现这更简单:

代码语言:javascript
复制
for counter in {1..30}; do
    grunt check | grep Failed
done > somefile

{1..30}表示法提供从1到30的数字。这是一个bash特性,所以不要尝试在一个普通的POSIX外壳上使用它。

获取更多的上下文

如果您希望看到更多关于错误消息的上下文,grep提供了几个帮助选项。若要查看行匹配"Failed“和前面的行,请使用-B

代码语言:javascript
复制
for counter in {1..30}; do
    grunt check | grep -B 1 Failed
done >somefile

类似地,-A可用于在匹配之后显示行。-C将在比赛前后显示线条。

票数 1
EN

Stack Overflow用户

发布于 2014-04-30 00:30:24

代码语言:javascript
复制
for ((cr=0; cr<30; cr++))
do
   grunt check | grep Failed
done > outfile.txt
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23377479

复制
相关文章

相似问题

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