標題中的主要問題:我想在腳本輸出的每一行前面加上腳本開始以來的時間。
背景。我使用 GNU 并行運行作業,其中一些會產生輸出(大多數不會)。自任務開始以來,我想在每個任務的輸出行之前加上時間。
uj5u.com熱心網友回復:
您可以bash像這樣在腳本的頂部添加一行:
#!/bin/bash
exec > >(trap "" INT TERM; while read line ; do printf "%d: %s\n" $SECONDS "$line"; done )
for ((i=0;i<10;i )) ; do
sleep 1
echo hello
done
如果您想要自開始以來的毫秒數,您可以執行以下操作:
#!/bin/bash
exec > >(trap "" INT TERM; start=$(date %s%N); while read line ; do now=$(date %s%N); ((ms=(now-start)/1000000)); printf "%d: %s\n" $ms "$line"; done )
for ((i=0;i<10;i )) ; do
sleep 1
echo hello
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/474218.html
