2017-09-13 51 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