![ksh에서 문자열을 비교하는 방법](https://rvso.com/image/97233/ksh%EC%97%90%EC%84%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%B9%84%EA%B5%90%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%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]" ]]