#!/bin/bash# 练习'date'命令echo"The number of days since the year's beginning is `date +%j`."# 需要一个前导的'+'来调用格式。# %j给出了年初以来的天数。echo"The number of seconds elapsed since 01/01/1970 is `date +%s`."# %s给出了自从"UNIX时期(UNIX epoch)"开始至今已过的秒数,# 但是这有什么用呢?prefix=tempsuffix=$(date+%s)# “日期”的“+%s”选项是GNU特有的。filename=$prefix.$suffixecho"Temporary filename = $filename"# 它非常适合创建 “唯一且随机” 的临时文件名,# 甚至比使用$$还好.# 你可以阅读'date' man手册,了解更多格式选项。exit0
date +%N | sed -e 's/000$//' -e 's/^0//'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# 如果存在,去除前后的零。
# 生成的整数的长度取决于去除了多少个零。
# 115281032
# 63408725
# 394504284
date +%j
# 输出今天在当年中的位置(自1月1日以来经过的天数)
date +%k%M
# 作为一个单独的数字字符串,以24小时制输出当前小时和分钟。
# 'TZ'参数允许覆盖默认时区。
date # Mon Mar 28 21:42:16 MST 2005
TZ=EST date # Mon Mar 28 23:42:16 EST 2005
# 感谢Frank Kannemann and Pete Sjoberg的点子.
SixDaysAgo=$(date --date='6 days ago')
OneMonthAgo=$(date --date='1 month ago') # 4周前(不是一个月!)
OneYearAgo=$(date --date='1 year ago')
bash$ zdump EST
EST Tue Sep 18 22:09:22 2001 EST
real 0m0.067s
user 0m0.004s
sys 0m0.005s
bash$ at 2:30 am Friday < at-jobs.list
job 2 at 2000-10-27 02:30