Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将人类可读的日期从历元转换为变量_Linux_Bash_Epoch - Fatal编程技术网

Linux 将人类可读的日期从历元转换为变量

Linux 将人类可读的日期从历元转换为变量,linux,bash,epoch,Linux,Bash,Epoch,好吧,这可能是一个非常基本的问题;但是,我刚刚回到Linux的马鞍上 我有一个变量,它保存一个称为pauseTime的历元时间。 我需要让这个变量成为人类可读的(比如2012-06-13 13:48:30) 我知道我可以直接输入 date -d @133986838 //just a random number there 这将打印类似的内容。但是我需要得到一个变量来保存人类可读的日期,而不是大纪元时间。。。我尝试的每件事都会出错。有什么想法吗?我们可以这样做: VARIABLENAME=$(

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

我有一个变量,它保存一个称为pauseTime的历元时间。 我需要让这个变量成为人类可读的(比如2012-06-13 13:48:30)

我知道我可以直接输入

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:非常有建设性。干得好!你问我为什么要这样做,我是有道理的。你的回答是在没有任何暗示的情况下进行投票,为什么你认为到处都是“坏习惯”。如果您没有注意到第一个代码段完全没有导出(这也是有原因的)。当然,按你的方式去做。