Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
Bash 如何获取实时时钟(RTC)的当前时间戳?_Bash_Timestamp_Real Time Clock_Hwclock - Fatal编程技术网

Bash 如何获取实时时钟(RTC)的当前时间戳?

Bash 如何获取实时时钟(RTC)的当前时间戳?,bash,timestamp,real-time-clock,hwclock,Bash,Timestamp,Real Time Clock,Hwclock,我想在BASH脚本中获取实时时钟的当前时间戳。hwclock命令可以打印出当前时间,但它不是时间戳 我考虑过解析HWCock的输出,然后将结果转换为时间戳,但是如果当前区域设置发生更改,HWCock的输出似乎会发生变化。因此,如果我将脚本提供给我的客户机,他们可能会使用与我不同的语言环境,并且我的解析结果可能是错误的(当然时间戳也会是错误的) 所以我的问题是,从RTC获取时间戳的最佳方式是什么?提前感谢。当您调用hwclock-D时,您会得到如下输出,其中包含时间戳: hwclock from

我想在BASH脚本中获取实时时钟的当前时间戳。hwclock命令可以打印出当前时间,但它不是时间戳

我考虑过解析HWCock的输出,然后将结果转换为时间戳,但是如果当前区域设置发生更改,HWCock的输出似乎会发生变化。因此,如果我将脚本提供给我的客户机,他们可能会使用与我不同的语言环境,并且我的解析结果可能是错误的(当然时间戳也会是错误的)


所以我的问题是,从RTC获取时间戳的最佳方式是什么?提前感谢。

当您调用
hwclock-D
时,您会得到如下输出,其中包含时间戳:

hwclock from util-linux 2.27.1
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2018/09/27 09:03:46
Hw clock time : 2018/09/27 09:03:46 = 1538039026 seconds since 1969
Time since last adjustment is 1538039026 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Thu 27 Sep 2018 11:03:45 CEST  .749554 seconds
sudo hwclock -D | grep "Hw clock time" | sed "s/.* = \([0-9]\+\) seconds .*/\1/"
以下命令解析此输出以提取实际时间戳:

hwclock from util-linux 2.27.1
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2018/09/27 09:03:46
Hw clock time : 2018/09/27 09:03:46 = 1538039026 seconds since 1969
Time since last adjustment is 1538039026 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Thu 27 Sep 2018 11:03:45 CEST  .749554 seconds
sudo hwclock -D | grep "Hw clock time" | sed "s/.* = \([0-9]\+\) seconds .*/\1/"

您的脚本可以硬编码区域设置;它不必使用从环境中继承的解决方案。感谢chepner,如果没有更好的方法,这将是一个解决方案:-)为什么需要更好的解决方案?您不必全局设置语言环境,只需为解析时间戳的命令设置:
locale=which parseTime