正文
shell中的时间值提取(date)
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
shell中的时间值提取(date)
方法1
# date +%F
# date +%T
# cat time.sh
#!/bin/bashDATE=`date +%F | sed 's/-//g'``date +%T | sed 's/://g'`
echo $DATE
# chmod u+x time.sh
# sh time.sh
2014082709352
方法2
“date +%Y%m%d%H%M%S”获取时间信息串
[we@h p]$ date +%Y%m%d%H%M%S;dateSun Apr :: CST
方法3
“date +%s”获取绝对秒数(UTC),使用“-d”参数还原时间。
#!/bin/bashprint_date()
{
/bin/date
}echo -n -e '\f$(date)\t\t| '
print_dateecho -n -e 'SEC=$(date +%s)\t| '
SEC=$(date +%s)
echo "$SEC"echo -n -e '$(date -d @$SEC)| '
date -d @$SEC[web@h p] sh date.sh
$(date) | Tue Apr :: CST
SEC=$(date +%s) |
$(date -d @$SEC)| Tue Apr :: CST
生成与时间相关的文件名称
应用:
例如用命令替换的方式生成带有时间信息的文件名。
$ touch ./reslog-"`date`".txt
$ ll
total
-rw-r--r-- root root Sep : are
-rw-r--r-- root root Sep : reslog-Mon Sep :: CST .txt
-rw-r--r-- root root Sep : reslog-Mon Sep :: CST .txt
-rw-r--r-- root root Sep : reslog-Mon Sep :: CST .txt
-rw-r--r-- root root Sep : reslog-Mon Sep :: CST .txt
$ touch ./reslog-"`date +%s`".txt
$ ll
total
-rw-r--r-- root root Sep : are
-rw-r--r-- root root Sep : reslog-.txt
-rw-r--r-- root root Sep : reslog-.txt
-rw-r--r-- root root Sep : reslog-.txt
-rw-r--r-- root root Sep : reslog-.txt
$ touch ./reslog-"`date +%Y%m%d%H%M%S`".txt
$ ll
total
-rw-r--r-- root root Sep : are
-rw-r--r-- root root Sep : reslog-.txt
-rw-r--r-- root root Sep : reslog-.txt
-rw-r--r-- root root Sep : reslog-.txt
* “date +%H%M%S”,这里的小时是“00~23”格式的,如果使用“date + %I”显示就是“01~12”格式的小时。
这个风格更加直观
$ touch ./reslog-"`date +%F_%T`".txt
$ ll
total
-rw-r--r-- root root Sep : are
-rw-r--r-- root root Sep : reslog---12_06::.txt
-rw-r--r-- root root Sep : reslog---12_06::.txt
-rw-r--r-- root root Sep : reslog---12_06::.txt
$ touch ./reslog-"`date +%F\ %T`".txt
$ ll
total
-rw-r--r-- root root Sep : are
-rw-r--r-- root root Sep : reslog--- ::.txt
-rw-r--r-- root root Sep : reslog--- ::.txt
-rw-r--r-- root root Sep : reslog--- ::.txt
时间设置
命令:
date,打印、设定日期和时间
选项:
-d, --date=STRING
显示时间;不是当前时间,是字符串指定的时间。
-s, --set=STRING
设置时间
STRING:
"Sun, 29 Feb 2004 16:21:42 -0800"
"2014-02-29 16:21:42 -0800"
"2024-02-29 16:21 -0800"
"2034-02-29 -0800"
"2044-02-29 16:21:42"
"16:00 next Thursday"
"next Thursday"
例子:
设置时间
[root@hp430G2 ~]# date -s "2014-08-27 17:30:55"
显示时间
[weblogic@hp430G2 ~]$ date -d "20140312 17:22:21"
Wed Mar :: CST
[weblogic@hp430G2 ~]$ date -d "2014-03-12 17:22:21"
Wed Mar :: CST