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