Ksh
Korn Shell:以特定格式顯示經過的時間
在日誌文件中,我需要列印經過的時間,格式如下:
"Process completed %s - Elapsed %s", <time now in HH:MM:SS format>, <difference from start date to end date in HH:MM:SS format>
例子:
Process completed 23:57:59 - Elapsed 103:22:59
我怎麼能做到這一點?
Ksh 有一個特殊的參數
SECONDS
,它總是包含自紀元以來的秒數。$SECONDS
在作業開始和結束時進行評估會為您提供開始時間和結束時間,不同的是經過的時間。Unix 時間不考慮閏秒:Unix 時間中的一天總是正好 86400 秒。因此,Unix 時間的時間算術很容易。
start=$SECONDS … end=$SECONDS elapsed=$((end - start)) printf 'Process completed %d:%02d:%02d - Elapsed %d:%02d:%02d\n' \ $((end / 3600)) $((end / 60 % 60)) $((end % 60)) \ $((elapsed / 3600)) $((elapsed / 60 % 60)) $((elapsed % 60))