在 shell 脚本中,有以下变量:
datestamp=$(date '+%Y-%m-%d_T%H-%M-%S')
datestamp_pretty=$(date '+%m/%d/%Y at %I:%M:%S %p')
第一个用作输出文件名的一部分,而第二个用于在文件内容中显示可读性好的日期和时间。由于这些是单独创建的,因此秒数可能会略有下降。有没有办法创建一个日期变量,然后以两种不同的方式对其进行格式化?如果是这样,这是如何完成的?
在 shell 脚本中,有以下变量:
datestamp=$(date '+%Y-%m-%d_T%H-%M-%S')
datestamp_pretty=$(date '+%m/%d/%Y at %I:%M:%S %p')
第一个用作输出文件名的一部分,而第二个用于在文件内容中显示可读性好的日期和时间。由于这些是单独创建的,因此秒数可能会略有下降。有没有办法创建一个日期变量,然后以两种不同的方式对其进行格式化?如果是这样,这是如何完成的?
如果您使用的是 GNU,这很容易
date
。首先,从
date
. 我选择获取纪元时间:然后,将时代转换为您想要的任何格式,无论您想要多少次:
它应该始终代表您第一次捕获的时间
$epoch
。如果您没有 GNU
date
,则需要一些其他方法将时代转换为人类日期。这是一种不需要 GNU
date
并且不需要您date
多次运行的方法。选择一个永远不会出现在任何日期/时间字符串中的字符串。它可以是单个字符——例如,,
~
并且^
都|
可以。但我会用/foo/
.只需将您的日期字符串格式与您在它们之间选择的字符串连接起来。(
+
从第二种格式中删除。)将输出捕获date
到一个变量中,然后将其拆分为您的分隔符字符串: