2017-09-13 28 views
0

我无法greping qstat命令具有可变grep的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; 

问题:变量$ Job_status这是应该有一个名字$ New_OS返回就业人数仅返回0,即使作业仍在运行。

问题:为什么qstat中的$ New_OS的grep没有以$ New_OS作为名称返回作业?我无法弄清楚这个问题,请给我一个解决方案或解决办法。提前致谢。

+0

你能否格式化你的答案以使其更清晰 –

+0

@Liam Healy现在清楚了吗?如果您需要更多详细信息,请告诉我。谢谢 –

回答

2

最后在我的grep工作中添加'*'。

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

预计grep来而没有“*”的工作,因为我不希望“grep的-w”精确匹配。如果有人遇到类似的情况,我会分享它。谢谢。

+0

请尝试一次我的解决方案,让我知道如果这可以帮助你。 – RavinderSingh13

0

如何使用以下内容。

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

因为我没有在我的系统qstat这样做可能不检查,它应该工作,但是,让我知道如何去即可。

+0

Ravinder, 您可以请分享诊断或简要说明您的解决方案如何工作? – nitinr708