if 문이 while 루프 내에서 작동하지 않습니다.

if 문이 while 루프 내에서 작동하지 않습니다.

여기서 문자열 비교가 작동하지 않는 이유를 이해할 수 없습니다.

while IFS=, read -r ELMS_SIZE ELMS_NAME ELMS_ENV ELMS_DB
do

if [ "${ELMS_DB}" = "NOMATCH" ]; then
 echo "done"
fi

done < <(tac ${CSM_DATA_DIR}/test.csv)

exit

ELMS_DB문자열 값은 NOMATCHtest.csv의 출력 예입니다.

12 am_pltconfig9 unknown NOMATCH
12 am_pltconfig8 unknown NOMATCH
12 am_pltconfig7 unknown NOMATCH
12 am_pltconfig6 unknown NOMATCH

답변1

귀하의 예에 따르면 test.csv파일은 실제로 쉼표로 구분되지 않고 공백으로 구분됩니다. while read 루프를 다음과 같이 변경해 보십시오.

while read -r ELMS_SIZE ELMS_NAME ELMS_ENV ELMS_DB
do
  if [ "$ELMS_DB" = "NOMATCH" ]; then
   echo "done"
  fi
done < <(tac "${CSM_DATA_DIR}/test.csv")

exit

관련 정보