显示当前date和时间没有标点符号
例如,我想要显示当前的date和时间格式如下:
yyyymmddhhmmss
我怎么做? 看起来大多数date格式都带有-
, /
,:等。
干得好:
date +%Y%m%d%H%M%S
如上图所示, man date
可以使用date
命令,如下所示:
date [OPTION]... [+FORMAT]
也就是说,你可以给它一个格式参数,从一个+
开始。 您大概可以猜到我使用的格式化符号的含义:
-
%Y
是一年 -
%m
是月份 -
%d
是一天 - … 等等
你可以在man date
find这个和其他格式化符号。
shell脚本中的一个简单例子
#!/bin/bash current_date_time="`date +%Y%m%d%H%M%S`"; echo $current_date_time;
不带标点格式: – +%Y%m%d%H%M%S
标点符号: – +%Y-%m-%d%H:%M:%S
如果你使用Bash,你也可以使用下面的命令之一:
printf '%(%Y%m%d%H%M%S)T' # prints the current time printf '%(%Y%m%d%H%M%S)T' -1 # same as above printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
您可以使用Option -v varname
将结果存储在$varname
而不是将其打印到stdout:
printf -v varname '%(%Y%m%d%H%M%S)T'
虽然date命令总是在子shell中执行(即在一个单独的进程中),printf是内置命令,因此会更快。