shell日期格式化、加减运算

#!/bin/bash echo i love you
输出:i love you

=======================================反引号的作用=========================

v=`echo i love you`
echo $v
输出:i love you
结论:反引号``之内的字符被解析为命令,并返回命令执行完的结果

=======================================日期================================

d=`date`
echo $d
输出:Fri Aug 17 06:12:57 UTC 2018

==============================日期的加减操作、格式化=========================

d=`date +"%y%m%d" echo $d   ##注意,日期格式化时,%y代表用2位数表示年份,如18; 
输出:180817

d1=`date +"%Y%m%d"    ##### %Y代表用4位数表示年份,如2018
echo $d1
输出:20180817

d2=`date -d "1 day ago" +"%Y%m%d"`   
echo $d1,$d2,
输出:20180817,20180816,

=======================================日期:格式化到纳秒=========================

d1=`date "+%Y%m%d%H%M%S000000000%N"` #注意date要与后面的前双引号保持一个空格,否则报错。
d2=`date '+%Y%m%d%H%M%S000000000%N'`
d3=`date '+%Y%m%d%H%M%S000000000%N'`
d4=`date '+%Y%m%d%H%M%S000000000%N'`
echo $d1
echo $d2
echo $d3
echo $d4

输出:
20180817061428000000000957311950
20180817061428000000000962491364
20180817061428000000000963804828
20180817061428000000000967447643
结论:%N表示纳秒数(10的-9次方)。

===========================当前日期加减一天、一个月、一年=======================

d1=`date +"%Y%m%d"

d2=`date -d "1 day ago" +"%Y%m%d"`  

d3=`date -d "1 month ago" +"%Y%m%d"`

d4=`date -d "+1 month" +"%Y-%m-%d"`

d5=`date -d "+1 month 1 year ago -1 day" +"%Y%m%d"`

echo -e "$d1, $d2, $d3, $d4, $d5"   ###用 echo 的-e选项来识别换行。

输出:

20180817,
20180816,
20180717,
2018-09-17,
20170916
原文地址:https://www.cnblogs.com/aaronhoo/p/9493215.html