grep status并将其循环直到shell中的count条件

时间:2014-09-29 19:52:06

标签: shell scripting grep

我会检查状态,如果状态不是“正在运行”,我希望我的脚本能够休眠5秒并增加计数器。

可以使用mcstat

检查单元格的状态
14:24:25 # mcstat -n cell1
XXX Impact InfoStatus 9.5.00 (Build 241196604 - 15-Jan-2014) [l2]
Copyright 1998-2014 XXX Software, Inc. as an unpublished work.  All rights reserved.
Running

我有兴趣提取“跑步”

我的剧本草稿

count=0
checker="false"

#take a nap before you work
sleep 2m

#grep for status string Running
status=`mcstat -n cell1| grep "Running"`


#lets count for 10 & keep checking for status
while [ $count -le 10 ]
do
    if [ ("$status" == "Running") ]; then
        checker=true
    else
        sleep 5s
        echo " waiting $count"
    fi
done

问题: 1.如何通过运行mcstat命令将grep命令用于查找字符串“Running”并将其存储在变量中。

1 个答案:

答案 0 :(得分:1)

也许这就是你想要的?

status=`mcstat -n cellname | grep Running`

编辑:注意那些不是撇号,它们与〜

在同一个键上

或者你可以这样做:

status=`mcstat -n cellname | tail -1`

编辑:试试这个:

while [ $count -le 10 ]
do
    status=`mcstat -n cell1 | tail -1`

    if [ "$status" == "Running" ]; then
        checker=true
        break
    else
        sleep 5s
        echo " waiting $count"
        count=$((count+1))
    fi
done

有关if / else的更多信息,请参阅本教程,我认为这就是您的问题所在: http://www.dreamsyssoft.com/unix-shell-scripting/ifelse-tutorial.php