kshで文字列を比較する方法

kshで文字列を比較する方法

タスクの結果を確認し、それに対してアクションを実行したいと思います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]" ]]

関連情報