Тот же скрипт KSH выполняется в тестовой среде, но не работает - PullRequest
0 голосов
/ 24 октября 2018

Я запускаю приведенный ниже скрипт в справочном env и получаю правильный вывод в выходном файле, но когда я запускаю то же самое в производственном процессе, выходной файл становится пустым.Я попытался отладить, используя set -x, и понял, что цикл for не выполняется в prod env.Пожалуйста, предложите, в чем может быть проблема.

#!/bin/ksh
DIR=/some/log/dir/error
DATE=$1
OUTPUT=/some/logs/dir/scripts/output/output.csv

. /calling/env/setupscript.ksh 

for file in $(find $DIR 2>/dev/null| grep $ASOF | grep -i something1 | grep -vi someotherthing2 | grep -iv someotherthing3 | grep -vi someotherthing4 | grep -vi someotherthing4 )
do
  echo "Checking file $file..."
  if [[ -z "$DONE" ]] then
     head -1 $file | read line
     echo "File name;Filter name;Type;Scenario;$line" > $OUTPUT.tmp
     DONE=1
  fi
  fullfile=$file
  file=$(basename $file)
  file=${file#SPR_RPT_}
  file=${file#SPR_BY__}
  echo $file | awk -F_ '{ print $(NF-2)" "$(NF-1) }' | read type scen
  filter=${file%%_$type\_*}
  grep ERROR $fullfile | while read line
  do
    echo "$(basename $fullfile);$filter;$type;$scen;$line" >> ${OUTPUT}.tmp
  done
done
...