now=`date "+%Y%m%d%H%M%S%N"`
对于初学者来讲,要注意几点:
1).如果不指定格式,直接将date的结果赋给now,那么格式为now=`date`,一定要注意date上面的两个符号,为键盘上面1左边的那个符号;
2).date后面“+“前面要加空格,date和格式字符串之间要加空格分开;
3).后面的格式字符串就不用多讲了,区别的是%Y表示为2009,则%y表示为09,其它的就不用说了。
4).字符串的连接中间不用符号,写在一起即可。
5).如果一个字符串中间包含变量,则字符串应该用双引号引起来,而不是单引号。如"abc${now}def".这个样子。
6).shell的赋值等号左右是没有空格的,是紧凑格式。
yy=`date +%Y` mm=`date +%m-1|bc` dd=`date +%d` [ $mm -lt 1 ] && mm=12;yy=`expr $yy - 1` aaa=`cal $mm $yy` dd=`echo $aaa|awk '{print $NF}'` echo $yy$mm$dd
显示昨天的日期:
y_year=`date +%Y` m_month=`date +%m` m_day=`date +%d` #y_year=2005 #m_month=08 #m_day=01 #The date test sucess so as: #y_year=2005;m_month=03;m_day=01 y_year=2005;m_month=01;m_day=01 y_year=2005;m_month=08;m_day=01 #######mine shell##################### ############bash redhat as 3 test success date_cal=`cal $m_month $y_year` if [ $m_day -le 1 ];then m_month2=`expr $m_month-1|bc` if [ $m_month2 -le 0 ];then m_month=12 y_year=`expr $y_year-1|bc` date_cal=`cal $m_month $y_year` else date_cal=`cal $m_month2 $y_year` m_month=$m_month2 fi m_day=`echo $date_cal |awk '{print $NF}'` else m_day=`expr $m_day-1|bc` fi echo $y_year$m_month$m_day