![kshで文字列を比較する方法](https://rvso.com/image/97233/ksh%E3%81%A7%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%AF%94%E8%BC%83%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95.png)
ジョブの結果を確認し、アクションを実行したいですFAILED
。
まず、アプリケーション ログファイル (最近処理されたファイル ( $processedfilename
)) の行の最後の単語を grep します。
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
-eq
エラーの原因となる を使用して算術比較を行っています。=
(または==
内[[
) を使用して文字列比較を行う必要があり、そのためには引用符を使用するだけで十分です。
[ "$check1" = "[[FAILED]" ]
[[ "$check1" = "[[FAILED]" ]]