タスクの結果を確認し、それに対してアクションを実行したいと思いますFAILED
。
まず、アプリケーションログファイル(最も最近処理されたファイル($processedfilename
))から行の最後の単語を検索します。
check1=$(grep "$processedfilename" "$logfile" | grep "anotherword" | \
grep "FAILED" | tail -1 | awk '{print $NF}')
これは[FAILED]
。
今、結果を確認したいと思います。
if [ $check1 -eq "[[FAILED]" ]
then
または
if [ $check1 -eq "\[FAILED]" ]
then
いつも算術構文エラー。
確認する正しい構文は何ですか[FAILED]
?
答え1
変数は常に二重引用符で引用する必要があります。そして=
文字列は同じでなければなりません。だから:
if [ "$check1" = "[FAILED]" ]; then
答え2
(またはinside)を使用して算術比較を実行すると、エラーが発生します。 (またはinside)-eq
を使用して文字列比較を実行する必要があります。引用符で十分です。=
==
[[
[ "$check1" = "[[FAILED]" ]
[[ "$check1" = "[[FAILED]" ]]