Unix步骤无法完成

时间:2014-05-05 21:28:02

标签: unix

首先,我不是Unix脚本编写者,但我们的任务是执行以下步骤来检查文件大小。如果它大于0,则它将继续处理该文件。

但是,如果它为0,它将回显“跳过它 - 在dnt_pln_inconj.dat文件中没有数据”

问题是,当我执行此步骤时,它只会达到“使用数据接收文件 - 继续”

如果文件大小大于0,如何继续处理?我做错了什么?

任何帮助都会很棒。

#Step 12: Verify pln proc inconjunction
step_num=$((step_num+1))
echo "stepnum $step_num: Verify pln proc inconjunction"

if [[ $last_step -eq $step_num ]]
then
  if [[ -s ${source_dir}/${file} ]]
  then
    echo "Received file with data -  Continue"

    $scriptdir/dental_script/dnt_verify_counts.sh dnt_pln_inconj.dat PLN-130
    ret_val=$?
    if [[ $ret_val -ne 0 ]]
    then
      next_step_num=$((step_num+1))
      echo $next_step_num > $logdir/$scriptname"_"step_num.log
      exit $step_num
    fi
  else
    echo "Skip it - NO DATA IN THE dnt_pln_inconj.dat FILE"
  fi
  last_step=$((last_step+1))
else
  echo "Skip it"
fi

1 个答案:

答案 0 :(得分:0)

这完全取决于dnt_verify_counts.sh脚本正在做什么。 在您的代码行中:

ret_val=$?

正在检查上一个命令的退出代码 - 带参数的dnt_verify_counts.sh。我认为它不会返回文件大小.. 如果您想检查文件大小,请使用' du'例如,它为您提供给定文件的大小,例如:

du /path/to/dnt_pln_inconj.dat

然后,使用cut剪切给定数据,仅返回尺寸部分;行:

$(du /path/to/dnt_pln_inconj.dat | cut -f 1 -)

将返回给定的文件大小,您可以在if - then - else block.conditions检查中使用。