【问题标题】:Commands within if condition [duplicate]if条件下的命令[重复]
【发布时间】:2016-07-29 19:06:06
【问题描述】:

我是脚本新手

谁能帮我解决我下面的脚本出了什么问题。我收到一个错误。

if `tail -2 jeevagan/sample/logs.txt | head -1 | grep "Start Outputing Report"` = TRUE && `tail -1 jeevagan/sample/logs.txt | grep "Start Outputing Report"` = TRUE

then
        echo "report error"
else
        echo "report good"
fi

在日志文件中,我有如下日志:

2016-04-07 06:57:36,248 INFO : Finished Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 07:06:52,812 INFO : Start Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 06:52:56,451 INFO : Finished Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 06:52:56,451 INFO : Finished Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 07:06:52,812 INFO : Start Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 07:06:52,812 INFO : Start Outputing Report:, Format:EXCEL, Locale: en_IN
2016-04-07 07:06:52,812 INFO : Start Outputing Report:, Format:EXCEL, Locale: en_IN

【问题讨论】:

    标签: linux shell scripting command


    【解决方案1】:

    来自我的 solaris 系统上的“man bash”:

    command1 && command2
    command2 is executed if, and only if,  command1  returns  an
    exit status of zero.
    

    要检查退出状态,请运行命令,然后

    echo $?
    

    所以

    tail -2 log.txt | head -1 | grep "Start Outputing Report"
    

    返回 0

    所以你可以像这样把它们串在一起

    tail -2 log.txt | head -1 | grep "Start Output" && tail -1 log.txt | grep "Start Output" && echo "report error"
    

    或编写类似的脚本

    tail -2 log.txt | head -1 | grep "Start Output" && tail -1 log.txt | grep "Start Output" 
    
    return=$?
    
    if [[ $return == 0 ]]; then
        echo "report error"
    else
        echo "report good"
    fi
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      相关资源
      最近更新 更多