Posted on 2011-03-13 10:23
S.l.e!ep.¢% 閱讀(3039)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
shell 中的時間計算轉為秒做相減運算(某些主機不支持date -d的話不能用此法)
CURTIME=`date +"%Y-%m-%d %H:%M:%S"` #當前的系統時間 2009-05-04 14:34:00
LASTLINE=$(ls -lt * "$v_DIRNAME"| line | awk '{print $6,$7,$8}')??? #獲取文件的最后時間 2009-10-04 14:30:00
echo "lasttime "$LASTLINE?
echo "Systime "$CURTIME
Sys_data=`date -d? "$CURTIME" +%s`??? #把當前時間轉化為Linux時間
In_data=`date -d? "$LASTLINE" +%s`
interval=`expr $Sys_data - $In_data`? #計算2個時間的差
echo $In_data
echo $Sys_data
echo $interval
注意:
??? 對于某些不支持date -d的主機,比如AIX,只能通過別的方法去實現,例如AIX裝有數據庫,比如ORACLE,可以通過SHELL調用SQLPLUS到dual表中進行時間的計算后返回.
select ROUND((sysdate - to_date("$In_data", 'Mon dd yyyy hh24:mi')) * 24 * 60*60) from dual;
??? 如果沒裝數據庫,可以自己用C寫一個SHELL實現來做此事,不過有些大材小用了.
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/foxliucong/archive/2009/05/29/4225008.aspx