首先,我不是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
答案 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检查中使用。