2017-03-06 184 views
0

我有一個bash腳本,它將運行一個主命令,比如說一個小時。我想在主命令啓動後(t_x)一段時間後執行另一個命令。類似這樣:如何在另一個命令運行的某個時間後運行命令?

main starts -------> main ends | | 在時間t_x,第二個命令執行

目前,我有這樣的事情:

mpirun main_command & sleep 1m && second_command 

,問題是第二次執行命令後,主命令被殺害。誰能幫我?謝謝!

+0

你可以嘗試類似:'(sleep 80&); LS;睡5次; ps'。除了「睡眠」,「ls」和「ps」,您可以使用其他命令。 – linuxfan

+1

至少對我而言,目前還不清楚實際問題是什麼。 –

+0

@MarkSetchell:主命令的輸出有缺陷(當主命令完成時);所以我想在主命令完成之前製作其輸出的副本;我知道我應該在哪個時間複印;但不是手動做,我想將它霧化。睡眠問題是在主要命令實際完成之前殺死主要命令。 –

回答

0

第一個命令無法鎖定控制檯,因爲另一個進程也在使用它。您需要重定向標準io管道,0<&- mpirun main_command >/dev/null 2>/dev/null如果仍然無法正常工作,請使用shell -c 'mpirun main_command' & sleep 1m;second_command除非您在中斷睡眠時需要失敗的退出代碼,否則您可以使用;而不是&&

相關問題