【问题标题】:Grep qstat with a variable returns nothing带有变量的 Grep qstat 不返回任何内容
【发布时间】:2018-02-22 07:33:05
【问题描述】:

我在使用变量 greping qstat 时遇到问题

场景:脚本-A 我的包装器提交另一个脚本-B 作为作业,在脚本-B 内我正在循环中提交其他作业(job1,job2..jobx),其中每一个作业有不同的作业名称,它们存储在变量 $New_OS 中。我正在尝试让我的脚本-B 休眠,直到所有 (Job1,job2..jobx) 都完成。

脚本

Job_status=`qstat | grep "${New_OS}" | wc -l`
echo -e "\n\nJob_status: $Job_status"
while [ $Job_status -ne "0" ];
do
    echo -e "Running PostProcessing for $Job_status sampleR, sleeping for 3 minutes..."
    sleep 3m
    Job_status=`qstat | grep "${New_OS}" | wc -l`
done;

问题:应该返回名称为 $New_OS 的作业数量的变量 $Job_status 仅返回 0,即使作业仍在运行。

问题:为什么 qstat 中 $New_OS 的 grep 没有返回以 $New_OS 为名称的作业?我无法在这里解决问题,请建议我解决方案或解决方法。提前致谢。

【问题讨论】:

  • 能否请您格式化您的答案以使其更清晰
  • @Liam Healy 现在清楚了吗?如果您需要更多详细信息,请告诉我。谢谢

标签: bash unix awk grep sh


【解决方案1】:

最后在我的 grep 中添加 '*' 起作用了。

   Job_status1=`qstat | grep ${New_OS}* | wc -l`

预计 grep 在没有“*”的情况下也能正常工作,因为我不希望使用“grep -w”进行精确匹配。我分享它以防万一有人遇到类似情况。谢谢。

【讨论】:

  • 请尝试一下我的解决方案,如果对您有帮助,请告诉我。
【解决方案2】:

如何使用关注。

Job_status1=$(qstat | grep -c ${New_OS}*)

由于我的系统中没有qstat,所以无法检查,它应该可以工作,但是,让我知道它是怎么回事。

【讨论】:

  • Ravinder,您能否分享诊断结果或简要说明您的解决方案的工作原理?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2016-10-18
  • 1970-01-01
  • 2012-08-23
  • 2016-05-19
  • 1970-01-01
相关资源
最近更新 更多