编写shell脚本,以am或pm表示法显示时间



我正在尝试编写一个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显示上午或下午

最新更新