-1
のために任意のエラーのためにのみ1を返し、0 I以下に示すように、私はエラーと非エラーのための2つの条件を与えているUNIXシェルスクリプト、持っている:UnixのKSH:成功
スクリプトを:Test.sh
#!/bin/sh
error1=ERROR
error2=FAIL
CheckError1=`grep $error1 proshell.sh | wc -l`
CheckErro2=`grep $error2 proshell.sh | wc -l`
if [ $CheckError1 -ge 1 ] then
exit 1
elif [ $CheckError2 -ge 1 ] then
exit 1
else
exit 0
fi
注:問題は、私はどのように1つだけエラーがないかどうかを取得するために、出口1
のためにエラーがないか常に1になっておりませんということでしょうか?
見つかった場合、成功の終了状態で終了し、実際のコードを表示してください。あなたが示したものは構文的に正しいものではありません。 'CheckErro2 =' vs '$ CheckError2 -ge'もタイプミスです。あなたは1の代わりに何を得ていますか?あなたは0を得ていますか?あるいは、 '['は不正な状態について不平を言っていますか?しかし、コードは実行されないので、推測は無駄です。 Bashを参照する[シェルスクリプトをデバッグする方法](https://stackoverflow.com/questions/951336/)も参照してください。ただし、Kornシェル(およびBourneシェル)でも同様です。 –
また、 'ksh'について話していますが、あなたのシバン行は'/bin/sh'を指定しています。これはおそらく_not_ 'ksh'です。 – mklement0
両方のテストを 'grep -E" $ {error1} | $ {error2} "' –