我有一個bash腳本,我想知道運行單個命令所需的時間並將它們保存在日誌文件中。另外我需要這些命令中的一些作爲不同的進程運行。我現在面臨的問題是我不能告訴哪個輸出屬於哪個命令,例如我的劇本有:在shell中並行運行多個命令並將其保存在文件中
echo "output 1:"
(time my_commnad1) 2>> my_log_file.log &
echo "output 2:"
(time my_commnad2) 2>> my_log_file.log &
echo "output 3:"
(time my_commnad3) 2>> my_log_file.log &
echo "output 4:"
(time my_commnad4) 2>> my_log_file.log &
wait
所需的輸出(注意這裏我可以看到它的輸出屬於哪個命令):
output 1:
real 2m39.892s
user 8m37.383s
sys 0m3.338s
output 2:
real 2m39.892s
user 8m37.383s
sys 0m3.338s
output 3:
real 2m39.892s
user 8m37.383s
sys 0m3.338s
output 4:
real 2m39.892s
user 8m37.383s
sys 0m3.338s
,但我得到這樣的:
output1:
output2
output3:
output4:
(不知道他們是爲了不能告訴是其中之一),在這裏,我不知道哪個輸出屬於哪個,因爲他們完整的命令獨立
real 2m39.892s
user 8m37.383s
sys 0m3.338s
real 2m39.892s
user 8m37.383s
sys 0m3.338s
real 2m39.892s
user 8m37.383s
sys 0m3.338s
real 2m39.892s
user 8m37.383s
sys 0m3.338s
我試着像耦合命令,然後定時,有兩個命令創建一個函數,然後按時他們和許多其他的東西,但每一次的東西引起了問題,或者很多事情沒有給我想要的結果。我猜測這應該是一件容易的事的人誰擁有在bash scripting.Thanks您的時間了一些經驗
更新: 其中my_command是一樣的東西:
ffmpeg -i $INPUT_VIDEO_FILE -profile:v baseline -level 4.0 -vf "scale=-2:360,subtitles='dynamic_subtitle.ass':force_style='FontName=Aaargh/Aaargh.ttf,PrimaryColour=&H664c4c4c" -start_number 0 -hls_time 10 -hls_list_size 0 -f hls s3_temp/$PROJECT_ID/videos/$VIDEO_ID/$VIDEO_ID"_360_.m3u8"
1)這些'my_command'是否在本腳本中被my_command&'放棄了,還是它們自己產生了分離的進程? 2)我認爲不是,但是:你能修改它們嗎?它們是你的代碼嗎? – zdim
@zdim是的我有一個bash腳本,其中包含所有這些my_command(更新問題中的細節)運行幾次 - (我認爲你在後臺調用它,不知道 - 雖然我猜想多處理),我需要知道他們每個人所花費的時間。 – Aameer