2015-01-14 65 views
0

我已經熟悉睡眠和usleep命令。但我不確定如何將它們用於並行命令,這些命令應該對上一個命令的開始時間有一定的延遲。我的意思是這樣(命令1到n應該並行運行他們的起始時間之間的延遲):平行bash命令之間有一定的延遲

Command 1's start time: 0 
Command 2's start time: 0+d 
Command 3's start time: 0+2d 
. 
. 
. 
Command n's start time: 0+(n-1)d 
+0

有多少個任務?你在想什麼樣的延遲? –

回答

2

如果你只是在外殼後臺運行他們,那麼你可以簡單地讓每個循環都在啓動其命令後進入睡眠狀態

for cmd in cmd1 cmd2 ... cmdN; do 
    eval ${cmd} & 
    sleep ${d} 
done 
+0

也許要注意,這些命令應該用引號包裹來處理參數和選項。或者,可以使用'$($ {cmd})'來實現,但這不是那麼時尚。 – ShellFish

+0

@ShellFish好點。我通常會懶洋洋地寫下我的bash答案,然後假設Gilles或Stephane會在稍後的日子漫遊來糾正它。 :) – dg99