如何在Unix/Linux Shell脚本中获取/打印当前日期

时间:2020-01-09 10:45:59  来源:igfitidea点击:

如何在Unix或者Linux Shell脚本中获取当前日期并将其存储到Shell变量中?
如何使用Unix Shell脚本打印当前日期?
如何在Linux Shell脚本中显示当前时间?
您需要使用以下语法在屏幕上打印当前日期和时间:

date +"%FORMAT"  
 var=$(date)  
 var=`date`

在Unix Shell脚本中打印当前日期和时间

要将当前日期和时间存储到变量,请执行:

now=$(date)

或者

now=`date`

在Unix中打印当前日期

要打印此日期,请使用printf或者echo语句:

echo "$now"
echo "Current date: $now"

或者使用printf命令:

printf "%s\n" "$now"

或者

printf "Current date and time in Linux %s\n" "$now"

在Linux Shell脚本中获取当前日期和时间

您可以使用以下语法格式化和显示日期:

date +'FORMAT'
 
### mm/dd/yyyy ###
date +'%m/%d/%Y'
 
## Time in 12 hr format ###
date +'%r'
 
## backup dir format ##
backup_dir=$(date +'%m/%d/%Y')
echo "Backup dir for today: /nas04/backups/${backup_dir}"

使用date命令查找Linux或者Unix中的当前日期和时间

日期命令格式代码列表

格式代码说明
%%文字%
%a语言环境缩写的工作日名称(例如,Sun)
%A语言环境完整的工作日名称(例如,星期日)
%b语言环境缩写的月份名称(例如Jan)
%B语言环境完整月份名称(例如,一月)
%c语言环境日期和时间(例如2005年3月3日星期四23:05:25)
%C世纪;类似于%Y,但省略了后两位数字(例如20)
%d每月的某天(例如01)
%D日期;与%m /%d /%y相同
%e每月的某天,空格已填充;与%_d 相同
%F完整日期;与%Y-%m-%d 相同
%gISO周号的年份的后两位数字(请参见%G)
%G年的ISO周编号(请参见%V);通常仅对%V 有用
%h与%b 相同
%H小时(00..23)
%I小时(01..12)
%j一年中的哪一天(001..366)
%k小时,填充空格(0..23);与%_H 相同
%l小时,空格填充(1..12);与%_I 相同
%m月(01..12)
%M分钟(00..59)
%n换行符
%N纳秒(000000000..999999999)
%p相当于AM或者PM的语言环境;如果未知,则为空白
%P类似于%p,但小写
%q季度(1..4)
%r语言环境12小时制(例如11:11:04 PM)
%R24小时小时和分钟;与%H:%M 相同
%s秒,自1970-01-01 00:00:00 UTC
%S秒(00..60)
%t标签
%T时间;与%H:%M:%S
%u星期几(1..7); 1是星期一
%U年的周数,以周日为一周的第一天(00..53)
%VISO周编号,以星期一为一周的第一天(01..53)
%w星期几(0..6); 0是星期日
%W年中的第几周,星期一为一周的第一天(00..53)
%x语言环境日期表示形式(例如12/31/99)
%X语言环境时间表示形式(例如23:13:48)
%y年份的后两位(00..99)
%Y
%z+ hhmm数字时区(例如-0400)
%:z+ hh:mm数字时区(例如-04:00)
%:: z+ hh:mm:ss数字时区(例如-04:00:00)
%::: z数字时区,带有:达到必要的精度(例如-04,+ 05:30)
%Z字母时区缩写(例如EDT)

示例shell脚本显示当前日期和时间

#!/bin/bash
now="$(date)"
printf "Current date and time %s\n" "$now"
 
now="$(date +'%d/%m/%Y')"
printf "Current date in dd/mm/yyyy format %s\n" "$now"
 
echo "Starting backup at $now, please wait..."
# command to backup scripts goes here
# ...