2017-07-27 12 views
0

経験の少ないユーザーのための可視性と使いやすさのために、定期的なJenkinsジョブとして設定したいシンプルなシェルスクリプトがあります。 、私が間違って何をやっているか否かにかかわらず、「できません」の「エラーメッセージが見出されていない」の$ OUTPUTFILEであるJenkinsでシェルスクリプトが失敗しない

#!/bin/bash 
outputfile=/opt/jhc/streaming/check_error_output.txt 

if [ "grep -sq 'Unable' $outputfile" == "0" ]; then 
    echo -e "ERROR MESSAGE FOUND\n" 
    exit 1 
else 
    echo -e "NO ERROR MESSAGES HAVE BEEN FOUND\n" 
    exit 0 
fi 

私のスクリプトは常に返します。ここでは

は、スクリプトのですか?

「できません」が見つからない場合、私はまた

答えて

0

(スクリプトが返すなどした場合、「0」はその後、他のすべてが失敗している、パス)成功と、このクラスに私のジェンキンスジョブを必要とgrepコマンドとチェックを実行します代わりに終了ステータス:

#!/bin/bash 
outputfile=/opt/jhc/streaming/check_error_output.txt 
grep -sq 'Unable' $outputfile 
if [ "$?" == "0" ]; then 
    echo -e "ERROR MESSAGE FOUND\n" 
    exit 1 
else 
    echo -e "NO ERROR MESSAGES HAVE BEEN FOUND\n" 
    exit 0 
fi 
+0

あなたの男を!私は自分自身を考えていたはずです、私はそれをあまりにも凝視していました、私の頭は消えました – jto

0

あなたは2つの異なる文字列を比較しています。結果は常に偽、すなわちelse部分が取られる。

また、ステータスコードを明示的に照会する必要はありません。このようにそれを実行します。

if grep -sq 'Unable' $outputfile 
then 
    .... 
else 
    .... 
fi 
+0

これは私が最初に始めた方法ですが、私は '[]' – jto

関連する問題