Linux 将人类可读的日期从历元转换为变量
好吧,这可能是一个非常基本的问题;但是,我刚刚回到Linux的马鞍上 我有一个变量,它保存一个称为pauseTime的历元时间。 我需要让这个变量成为人类可读的(比如2012-06-13 13:48:30) 我知道我可以直接输入Linux 将人类可读的日期从历元转换为变量,linux,bash,epoch,Linux,Bash,Epoch,好吧,这可能是一个非常基本的问题;但是,我刚刚回到Linux的马鞍上 我有一个变量,它保存一个称为pauseTime的历元时间。 我需要让这个变量成为人类可读的(比如2012-06-13 13:48:30) 我知道我可以直接输入 date -d @133986838 //just a random number there 这将打印类似的内容。但是我需要得到一个变量来保存人类可读的日期,而不是大纪元时间。。。我尝试的每件事都会出错。有什么想法吗?我们可以这样做: VARIABLENAME=$(
date -d @133986838 //just a random number there
这将打印类似的内容。但是我需要得到一个变量来保存人类可读的日期,而不是大纪元时间。。。我尝试的每件事都会出错。有什么想法吗?我们可以这样做:
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")
+
后面的格式在人员日期
中进行了说明
注意:
$()
是反勾号的现代形式。即,将命令的输出捕获到变量中。然而,$()
使一些事情变得更容易,最明显的是其中的转义规则。因此,如果您的shell能够理解它,您应该总是更喜欢它而不是背景符号。谢谢,我也尝试过类似的东西。。。但是,根据您的建议,我意识到我从未在循环结束时清除变量。导致它在下一次传递时出错。谢谢,这解决了我的问题。你为什么建议他导出变量?你为什么导出变量。我几乎可以肯定这是没有必要的。子进程是否需要查看它?这将是这样做的唯一理由。有些人习惯性地这样做,他们不应该这样做。@jordanm:很简单,因为这更通用。我不希望他最终期望变量可以从其他上下文中使用,而问题中没有提到任何上下文。当然,这是可选的。但是没有更多的背景,我坚持我的决定,推荐导出
:)@jordanm:非常有建设性。干得好!你问我为什么要这样做,我是有道理的。你的回答是在没有任何暗示的情况下进行投票,为什么你认为到处都是“坏习惯”。如果您没有注意到第一个代码段完全没有导出(这也是有原因的)。当然,按你的方式去做。