2017-09-13 1 views
0

Ich habe Probleme greping qstat mit einer variablenGrep qstat mit einer variablen nichts zurückgibt

Szenario: script-A meine Wrapper trägt ein anderes Skript-B als ein Job, innerhalb Skript-B I andere Jobs vorlege In einer Schleife (job1, job2..jobx) hat jeder dieser Jobs unterschiedliche Jobnamen, die in einer Variablen $ New_OS gespeichert sind. Ich versuche, mein Skript-B schlafen zu lassen, bis alle (Job1, Job2 ... Jobx) abgeschlossen sind.

Script:

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; 

Problem: Die Variable $ Job_status, die die Anzahl der Jobs mit Namen $ New_OS kehrt nur zurück soll, 0, obwohl die Arbeitsplätze noch laufen.

Frage: Warum gibt der grep von $ New_OS in qstat die Jobs mit $ New_OS nicht als Namen zurück? Ich konnte das Problem hier nicht herausfinden, bitte schlagen Sie mir eine Lösung oder eine Arbeit vor. Danke im Voraus.

+0

Könnten Sie bitte Ihre Antwort formatieren, um es klarer zu machen –

+0

@Liam Healy Ist es jetzt klar? Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Danke –

Antwort

2

Schließlich fügte '*' in meinem Grep hinzu.

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

Erwartet grep, ohne dass ‚*‘ zu arbeiten, da ich nicht nach einer genauen Übereinstimmung zu ‚grep -w‘ suchen. Ich teile es nur für den Fall, dass jemand in einer ähnlichen Situation endet. Vielen Dank.

+0

Bitte versuchen Sie einmal meine Lösung auch und lassen Sie mich wissen, wenn das Ihnen hilft. – RavinderSingh13

0

Wie wäre es mit folgenden.

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

Da ich nicht qstat in meinem System tun könnte so nicht überprüfen, sollte es funktionieren, aber lassen Sie mich wissen, wie es geht dann.

+0

Ravinder, Können Sie bitte die Diagnose oder ein kurzes Detail teilen, wie Ihre Lösung funktionieren würde? – nitinr708

Verwandte Themen