zoukankan      html  css  js  c++  java
  • shell中date使用总结-基于自动定期备份mysql实践


    ------------------------时间的格式

    date [OPTION]... [+FORMAT]



    echo `date 空格 +'时间格式串'`

    调用date必须加符号反引号``,表示执行里面的结果



    当为: `date +'%Y%m%d-%H:%M:%S'`没有时分秒的情况下,不需要用''将格式包含起来。但是增加时分秒后,
    如果还这样子用  `date +%Y%m%d %H:%M:%S` 则会报错:

    date: extra operand `%H:%M:%S'

    将其看成是额外的参数去了。如果日期与时间有符号连接起来,则不会:

    %Y%m%d-%H:%M:%S,关键是有空格,程序误判了。

    经验:习惯最好是将格式用引号括起来。可以是单引号,也可以是双引号。根据shell变量定义的情况来。


    echo `date + "%Y%m%d %H:%M:%S"` 会直接输出在屏幕上。

    定义在shell变量中的方式:

    DATE="`date +'%Y%m%d-%H:%M:%S'`"


    这里最外面已经有个双引号。里面格式用单引号括起来。

    +就表示显示时间,而非设置时间。格式设定为一个加号后接数个标记

    如果不确定时的测验方式:
    1、在终端使用echo。会直接输出在屏幕上。

    2、date --help 会显示帮助信息

    date实际上就是一个命令。



     -d, --date=STRING         display time described by STRING, not `now'


    date +%y%m%d --date=5 days ago

    如果不加--date,默认是显示当前时间,按照格式"%y%m%d"进行显示。
    现在加一个--date参数,就不是显示now了。

    假设现在是:14:45
    那么,echo `date +"%Y%m%d %H:%M:%S" --date="5 days ago"`

    得到的时间是:5天之前的现在时间——20130824 14:45:00



    ===================================关于echo命令

    在shell中。
    方式1、echo "要输出的字符串"
    方式2、 echo 要输出的字符串

    在某些情况下,使用引号与不使用都没区别。

    要让shell把里面的结果执行的话,则是
    echo "``"

    echo "-------------------$(date +"%y-%m-%d %H:%M:%S")----------------"

    我可以把()看成是``的替代符号。


    要输出换行 的时候,必须调用 -e 参数

    echo -e  "输出 输出"


    ============================================没搞清楚什么样的字符才是--date=""里面的合法格式呢?
    假设我要想显示上个月,怎么使用
    date --date="LAST MONTH"  +"%Y-%m"

    技巧:如果不确定,自己到shell命令行下面去试。

    如果是非法的格式,则会提示的,比如,我传递一个:--date="LAST"
    提示为date: invalid date `LAST'

    .................

  • 相关阅读:
    oracle 例外
    Help with Intervals(集合的交并补,线段树)
    Mex(线段树的巧妙应用)
    hdu4578Transformation(线段树多个lz标记)
    Coder(线段树)
    Ice-cream Tycoon9(线段树)
    Partition(线段树的离线处理)
    ACM学习大纲(转)
    Codeforces Round #250 (Div. 1)
    记次浙大月赛 134
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/3560511.html
Copyright © 2011-2022 走看看