Unix step赢了';不完整
首先,我不是Unix脚本编写人员,但我的任务是执行以下步骤来检查文件大小。如果大于0,则它将继续处理该文件 但是,如果其为0,它将回显“跳过它-dnt_pln_inconj.dat文件中没有数据” 问题是,当我运行此步骤时,它只会到达“接收到包含数据的文件-继续” 如果文件大小大于0,如何使其继续处理?我做错了什么 任何帮助都会很棒Unix step赢了';不完整,unix,Unix,首先,我不是Unix脚本编写人员,但我的任务是执行以下步骤来检查文件大小。如果大于0,则它将继续处理该文件 但是,如果其为0,它将回显“跳过它-dnt_pln_inconj.dat文件中没有数据” 问题是,当我运行此步骤时,它只会到达“接收到包含数据的文件-继续” 如果文件大小大于0,如何使其继续处理?我做错了什么 任何帮助都会很棒 #Step 12: Verify pln proc inconjunction step_num=$((step_num+1)) echo "stepnum $st
#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
这完全取决于dnt_verify_counts.sh脚本正在执行的操作。 在代码行中:
ret_val=$?
正在检查上一个命令的退出代码-即dnt_verify_counts.sh和参数。我想它不会返回文件大小。。
如果要检查文件大小,请使用“du”实用程序,例如,该实用程序可为您提供给定文件的大小,例如:
du/path/to/dnt\u pln\u inconj.dat
然后,用cut
剪切给定数据,只返回尺寸部分;行:
$(du/path/to/dnt_pln_inconj.dat | cut-f 1-)
将返回给定的文件大小,您可以在if-then-else block.conditions检查中使用该文件。dnt_verify_counts.sh正在检查dnt_counts.dat文件是否存在以及是否已填充(始终填充)。dnt_counts.dat只是一个包含某些文件的记录计数的文件。