我有bash檔案 -
cat input.txt | parallel -j4 'python {}'/span>
cp -r outputs /home/usr/my_outputs
我想在所有作業執行完畢后才將outputs復制到my_outputs。目前,看起來parallel立即回傳(在啟動作業后),然后cp -r被立即執行,但我想在復制之前等待作業執行完畢。我如何做到這一點呢?謝謝!
編輯。 input.txt是這樣的 -
run1.py -n 5
run2.py -n 5
run3.py -n 5
run4.py -n 5
uj5u.com熱心網友回復:
嘗試:
parallel --colsep ' '
否則,你實際上是在嘗試運行:
python 'run1.py -n 5'
這意味著Python解釋器正在尋找一個名為run1.py -n 5
uj5u.com熱心網友回復:
我也做過類似的事情,我有4個Python腳本同時運行,也有同樣的問題,雖然我是把它們設定為關閉,并把它們推到后臺。這些腳本寫入檔案,然后在我的bash腳本中使用。我通過使用wait $(jobs -rp)解決了這個問題 -
python script1.py &
python script2.py &
python script3.py &
python script4.py &
wait $(jobs -rp)
# 其他需要在上述內容之后運行的bash代碼。
這也適用于gnu parallel。試試這個:
cat input.txt | parallel -j4 'python {}'/span>
等待 $(jobs -rp)
cp -r outputs /home/usr/my_outputs
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/324956.html
標籤:
