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]" ]]

관련 정보