Shell
如何比較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
導致錯誤進行算術比較,您需要通過使用=
(或==
內部[[
)進行字元串比較,為此使用引號就足夠了:[ "$check1" = "[[FAILED]" ] [[ "$check1" = "[[FAILED]" ]]