Bash 带变量的grepqstat不返回任何内容

Bash 带变量的grepqstat不返回任何内容,bash,unix,awk,grep,sh,Bash,Unix,Awk,Grep,Sh,我无法用变量将qstat变灰 场景:script-A我的包装器提交另一个script-B作为作业,在script-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 [

我无法用变量将qstat变灰

场景:script-A我的包装器提交另一个script-B作为作业,在script-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作为名称返回工作?我想不出这里的问题,请给我一个解决方案或解决办法。提前谢谢

最后在我的grep中添加“*”成功了

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

希望grep在没有“*”的情况下工作,因为我不希望“grep-w”是一个精确的匹配。我分享它只是为了以防万一,如果有人在类似的情况下结束。谢谢。

最后在我的grep中添加“*”成功了

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

希望grep在没有“*”的情况下工作,因为我不希望“grep-w”是一个精确的匹配。我分享它只是为了以防万一,如果有人在类似的情况下结束。谢谢。

使用以下命令如何

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

由于我的系统中没有
qstat
,因此无法检查,它应该可以工作,但是,请让我知道它是如何工作的。

使用以下命令如何

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

由于我的系统中没有
qstat
,因此无法进行检查,因此应该可以正常工作,但是,请告诉我它是如何工作的。

请将您的答案格式化,以便进行检查clearer@Liam希利,现在清楚了吗?如果你需要更多的细节,请告诉我。谢谢你能把你的答案格式化吗clearer@Liam希利,现在清楚了吗?如果你需要更多的细节,请告诉我。感谢您也尝试一次我的解决方案,让我知道这是否对您有帮助。请也尝试一次我的解决方案,让我知道这是否对您有帮助。Ravinder,请您分享诊断或简要说明您的解决方案将如何工作?Ravinder,您能否分享诊断或简要说明您的解决方案将如何工作?