我正在嘗試編寫一個將多個作業發送到羣集的bash腳本(SGE調度程序),和他們每個人的等待前面的結束,如:當數組中的子作業數量取決於前一個作業的結果時,如何在多個作業的管道中運行陣列作業
HOLD_ID=$(qsub JOB1.sh | cut -c 10-16)
HOLD_ID=$(qsub -hold_jid $HOLD_ID JOB2.sh | cut -c 10-16)
HOLD_ID=$(qsub -hold_jid $HOLD_ID JOB3.sh | cut -c 10-16)
這完美的作品,不過,現在我想添加這個管道的一個holded者陣列作業,如:
qsub -hold_jid $HOLD_ID -t 1-$NB_OF_SUBJOBS JOB4.sh
但是這裏的子工作的數量($NB_OF_SUBJOBS
)我將取決於結果JOB2.sh.
我想這是一個快速的主腳本,只是發送所有的工作。我不想有一段時間+睡覺或類似的東西,這是我的第一次嘗試。工作取決於我需要的數量(JOB2.sh)是相對較長的時間。由於最後一行是在submited時進行評估的,因此前面的JOB2.sh創建的任何具有多個子作業的變量或文件都不起作用。有任何想法嗎?
非常感謝,
大衛
非常感謝,它是一個完美而乾淨的解決方案。 – David
歡迎您。請接受答案。 – Vince