7

好的,这可能是一个非常基本的问题;但是,我刚刚回到 Linux 的马鞍上。

我有一个变量,它保存一个称为 pauseTime 的纪元时间。我需要该变量成为人类可读的(类似于 2012-06-13 13:48:30)。

我知道我可以输入

date -d @133986838 //just a random number there

这将打印类似的东西。但我需要让变量保存人类可读的日期,而不是纪元时间......我尝试的所有事情都不断出错。关于我如何做到这一点的任何想法?

4

1 回答 1

9

这样做:

VARIABLENAME=$(date -d @133986838)

接着

export VARIABLENAME

或在 Bash 中直接执行:

export VARIABLENAME=$(date -d @133986838)

如果要格式化,请使用通常的 ISO 格式:

export ISODATE=$(date -d @133986838 +"%Y-%m-%d %H:%M:%S")
# or
EPOCHDATE=133986838
export ISODATE=$(date -d @$EPOCHDATE +"%Y-%m-%d %H:%M:%S")

后面的格式在 中+进行了解释man date

注意:$()是反引号的现代形式。即将命令的输出捕获到变量中。然而,$()这让一些事情变得更容易,最显着的是逃避其中的规则。因此,如果你的 shell 理解它,你应该总是更喜欢它而不是反引号。

于 2012-06-13T18:53:33.623 回答