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

関連情報