------------------------时间的格式
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'
.................