2016-04-08 13 views
0

私はスクリプトに慣れていません条件内のコマンド

私の下のスクリプトで何が問題なのか誰でも助けてください。私はエラーが発生しています。ログファイルで

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 

答えて

1

私のSolarisシステム上の '男のbashの' から:

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

が終了ステータスは実行調べるためにコマンドの場合、

echo $? 

so

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" 

return=$? 

if [[ $return == 0 ]]; then 
    echo "report error" 
else 
    echo "report good" 
fi 
のようなので、

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

またはスクリプトそれらを何かのような文字列にそれらをすることができます