


unix中日期使用誤區
使用下面格式獲得日期
SYSDATE=`date +%e%h%Y_%H:%M | awk '{print $0}'`
然后通過日期生成指定的文件名
MAINLOG=$JCLPATH/etl_$SYSDATE.log
然后通過應用程序調用,如:
sas $PVPROGRAM/etlrun.sas -sysparm "$MAINPARA" -log $MAINLOG &
初看沒有問題,日志也正常,可惜的是今天是5號,那么它MAINLOG的值將會為
***/etl_ 5Jan2006_09:53.log
注意看,這個日志文件名中有個空格,所以在程序執行時SAS會報一個無效的文件名,然后就中止執行了
根據UNIX日期輸出格式規定:
%%
文本的 %
%a
當前區域的星期幾的簡寫 (Sun..Sat)
%A
當前區域的星期幾的全稱 (不同長度) (Sunday..Saturday)
%b
當前區域的月份的簡寫 (Jan..Dec)
%B
當前區域的月份的全稱(變長) (January..December)
%c
當前區域的日期和時間 (Sat Nov 04 12:02:33 EST 1989)
%d
(月份中的)幾號(用兩位表示) (01..31)
%D
日期(按照 月/日期/年 格式顯示) (mm/dd/yy)
%e
(月份中的)幾號(去零表示) ( 1..31)
%h
同 %b
%H
小時(按 24 小時制顯示,用兩位表示) (00..23)
%I
小時(按 12 小時制顯示,用兩位表示) (01..12)
%j
(一年中的)第幾天(用三位表示) (001..366)
%k
小時(按 24 小時制顯示,去零顯示) ( 0..23)
%l
小時(按 12 小時制顯示,去零表示) ( 1..12)
%m
月份(用兩位表示) (01..12)
%M
分鐘數(用兩位表示) (00..59)
%n
換行
%p
當前時間是上午 AM 還是下午 PM
%r
時間,按 12 小時制顯示 (hh:mm:ss [A/P]M)
%s
從 1970年1月1日0點0分0秒到現在歷經的秒數 (GNU擴充)
%S
秒數(用兩位表示)(00..60)
%t
水平方向的 tab 制表符
%T
時間,按 24 小時制顯示(hh:mm:ss)
%U
(一年中的)第幾個星期,以星期天作為一周的開始(用兩位表示) (00..53)
%V
(一年中的)第幾個星期,以星期一作為一周的開始(用兩位表示) (01..52)
%w
用數字表示星期幾 (0..6); 0 代表星期天
%W
(一年中的)第幾個星期,以星期一作為一周的開始(用兩位表示) (00..53)
%x
按照 (mm/dd/yy) 格式顯示當前日期
%X
按照 (%H:%M:%S) 格式顯示當前時間
%y
年的后兩位數字 (00..99)
%Y
年(用 4 位表示) (1970...)
%z
按照 RFC-822 中指定的數字時區顯示(如, -0500) (為非標準擴充)
%Z
時區(例如, EDT (美國東部時區)), 如果不能決定是哪個時區則為空
-------------------------------------------------------------------------------
可以看出,要改正這一問題,要輸出2位的日期,可以通過%d來實現,如下
SYSDATE=`date +%d%h%Y_%H:%M | awk '{print $0}'`
關鍵字:日期、dat
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解