HP-UX에서 "알 수 없는 테스트 연산자"를 재현하려고 시도 중

HP-UX에서 "알 수 없는 테스트 연산자"를 재현하려고 시도 중

HP-UX **** B.11.31 U ia64 ***** 무제한 사용자 라이센스

 LINE_COUNT=`wc -l ${LOG_DIR}/file_transaction.log`
  if [ ${LINE_COUNT:-"0"} -ge 10000 ]
  then
    mv ${LOG_DIR}/file_transaction.log ${LOG_DIR}/file_transaction.${DATE_STAMP}.log
  fi

위의 코드는

/opt/***/***/bin/***_file_mgmt_out.ksh[239]: /var/opt/***/****/log/file_transaction.log: unknown test operator

아래 코드에서는 이 오류를 재현할 수 없습니다.

LINE_COUNT=1234
  if [ ${LINE_COUNT:-"0"} -ge 1000 ]
  then
    echo "line count is greater than thousand"
    else
    echo "line count is lesser than thousand"
  fi

LINE_COUNT=990 및 LINE_COUNT=""를 사용하여 위 코드를 실행해 보았습니다.

답변1

파일을 인수로 사용하는 것처럼 wc -l을 사용하면 다음과 같은 결과가 나타납니다.

line-count file-name

이는 테스트 운영자에게 부적절한 형식입니다.

줄 수만 원하면 wc가 표준 입력에서 파일을 읽도록 하십시오.

LINE_COUNT=$( wc -l < "${LOG_DIR}/file_transaction.log" )

답변2

출력을 확인하십시오 wc -l ${LOG_DIR}/file_transaction.log. 다음과 같은 형식을 취합니다.

1234 .../file_transaction.log

대신 다음을 사용하세요.

wc -l < ${LOG_DIR}/file_transaction.log

관련 정보