2017-05-02 20 views
1

while循環我試圖用的mpirun嵌套在一個while循環運行一個批處理腳本,這樣的mpirun爆發在bash

while read line 
do 
    mpirun -np 4 myexec > /dev/null 
done < case.txt 

但這個腳本只返回一個循環的結果。只要可執行文件完成,循環就會中斷。 我也試着運行沒有平行的代碼,它工作正常。 如果我用正常的while循環替換,同時讀取行,如while [$ count -le 9],它也可以。 For-loop也可以。 我只是無法弄清楚。希望有人能告訴我爲什麼會發生這種情況。

回答

1

看起來像mpirunstdin讀取,這是case.txt在這種情況下。這將在循環的第一次運行期間讀取文件中的所有行。在read的下一次嘗試中,文件已被完全讀取,這就是循環結束的原因。

嘗試分配/dev/null它的標準輸入:

while read line 
do 
    mpirun -np 4 myexec > /dev/null < /dev/null 
done < case.txt 
+0

這就是我想要的。謝謝!!! – zbli