ksh에서 문자열을 비교하는 방법

ksh에서 문자열을 비교하는 방법

작업 결과를 확인하고 에 대한 작업을 실행하고 싶습니다 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]" ]]

관련 정보