我正在尝试编写一个shell脚本,该脚本以am或pm显示时间,而不是使用date命令显示时间的方式。我不知道该怎么做。我想,对于初学者来说,我如何从date命令中提取时间来操纵它?我如何提取一小时的数字来操纵它?
您想要的是
man strftime
这代表字符串格式时间,这是date
使用的格式。
因此,要获得当前AM/PM,请使用以下内容:
date +"%p"
或
ampm=`date +"%p"`
echo $ampm
小时可以是几种格式之一(你想要12或24小时的时间,前导零还是不前导?(我猜你想要非前导零的12小时时间:
date +"%l"
您可以使用下面的一个以AM和PM格式打印时间,最长可达分钟。
echo $(date +"%I:%M %p")
输出:上午09:20
或
echo $(date +"%r")
输出:09:20:09 PM
或echo$(日期+"%I%p"(
输出:09 PM
而不是使用日期命令显示的方式
date
命令采用一个格式字符串。根据给定的时间值或当前区域设置的相应字符串,提供%p
将显示"AM"或"PM"。中午视为"PM",午夜视为"AM":
% date +'%H:%M %p'
08:01 am
"在引擎盖下",这称为strftime()
。有关更多格式选项,请参阅手册页。
这取决于区域设置。
LC_TIME="C" date +%l%p
LC_TIME="C" date +'%l:%M %p'
要将AM或PM设置为AM或PM,请尝试date+%#p
您可以使用日期命令的"+"格式选项。例如:
> date +%l%p
-> 7PM
使用日期+"%p"大写p显示上午或下午