尝试在 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

相关内容