Как сравнить строки в ksh

Я хочу проверить результат работы и выполнить действие на FAILED .

Сначала: grep последнее слово строки в моем лог-файле приложения (для последнего обработанного файла ( $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] ?

Вы всегда должны удвоить переменные кавычек. И вам нужно = для равных строк. Так:

 if [ "$check1" = "[FAILED]" ]; then 

Вы выполняете арифметическое сравнение с помощью -eq приводящего к ошибке, вам нужно выполнить сравнение строк с помощью = (или == inside [[ )), и для этого достаточно использовать кавычки:

 [ "$check1" = "[[FAILED]" ] [[ "$check1" = "[[FAILED]" ]]