首页 > 解决方案 > 检查计算状态的脚本

问题描述

我试图解决以下问题,但由于我对 Bash 的了解有限,我寻求帮助。我有一组带有 inp 扩展名的文件(例如 name1.inp、name2.inp 等)。这些位于某个文件夹中并提交到队列中。在某些时候,计算开始并产生输出文件(例如 name1.log、name2.log 等)。计算完成后,输出文件包含最后一个类似字符串“正常终止”。我想编写一个脚本来检查此类计算的状态,即在计算开始、正在进行或完成时打印出信息。我知道如何检查完成的计算(tail 命令),但不确定如何遍历文件夹中的所有 inp 文件以检查它们是否是日志文件,如果这些文件存在只是为了检查“正常终止”字符串是否存在或不是。

非常感谢解决这个简单的问题。

标签: bash

解决方案


多亏了许多有用的评论,脚本如下所示,并且运行良好。非常感谢评论前一篇文章的人。

for inp in *.inp; do

  inpfile="${inp##*/}"
  inpname="${inpfile%.inp}"
  outfile="${inpname}.log"

  if test -f "$outfile"; then
    # echo "$outfile exists."

    if grep -q 'Normal termination' $outfile; then
      echo ">> $outfile FINISHED."
    else
      echo "-- $outfile IN PROGRESS."
    fi

  else
    #echo "$outfile does not exist."
    echo "XX $outfile NOT STARTED."
  fi

done

推荐阅读