Macos /Mac OS X中的进程/正常运行时间

Macos /Mac OS X中的进程/正常运行时间,macos,uptime,Macos,Uptime,我需要与Linux的“cat/proc/uptime”完全相同的输出 例如,使用/proc/uptime,您将获得 1884371.64 38646169.12 但任何Mac的替代品,比如“正常运行时间”,你都会 20:25上升20:26,6个用户,平均负载:3.19 2.82 2.76 我需要它完全像cat/proc/uptime一样,但在Mac OS X上。在Macintosh上根本没有“/proc”目录 : 你会得到这样的回答: kern.boottime: { sec = 1362633

我需要与Linux的“cat/proc/uptime”完全相同的输出

例如,使用/proc/uptime,您将获得

1884371.64 38646169.12

但任何Mac的替代品,比如“正常运行时间”,你都会

20:25上升20:26,6个用户,平均负载:3.19 2.82 2.76

我需要它完全像cat/proc/uptime一样,但在Mac OS X上。

在Macintosh上根本没有“/proc”目录

:

你会得到这样的回答:

kern.boottime: { sec = 1362633455, usec = 0 } Wed Mar  6 21:17:35 2013
明白了

$sysctl -n kern.boottime | cut -c14-18
87988
然后我将其转换为可读格式(不记得如何转换):

1天00:26:28

将返回类似于
1天,20小时,10分钟,55秒

以下是我用来获取数值的方法,而不是切割法

sysctl kern.boottime | awk '{print $5}'
其中$5是字符串的范围

范例

$1 Gives you "sysctl kern.boottime"
$2 Gives you "{"
$3 Gives you "sec"
从字符串

kern.boottime: { sec = 1604030189, usec = 263821 } Fri Oct 30 09:26:29 2020

因此,我应该使用“cut”来删除前x个字母,即“kern.boottime:{sec=”?我还需要删除其余的字母…我开始使用这种东西。还有“
sysctl-n kern.boottime
”,它去掉了“
kern.boottime
”boottime变量是一个结构,我看不到在sysctl命令中内置一种简单的方法来获取结构中的变量。因为我不喜欢简单地切割硬边界(以防输出布局发生变化),所以我选择了以下选项:
while IFS='=',read-d',key-value;do eval“boot\u-time\u$key='$value”2>/dev/null;解决了这个答案的一个小问题。您的
cut
在固定位置之间获取字符(从14到18)。这在您的情况下起作用,因为您的系统没有运行很长时间,但对我来说,这造成了问题。我更改了
cut
命令来解决这个小问题。
sysctl-n kern.boottime | cut-f4-d'.\124; cut-d','-f1
。如果您希望在Mac上的正常运行时间以秒为单位,可以使用
ts\u boot=`sysctl-n kern.boottime | cut-d“-f4 | cut-d“,“-f1`;ts_now=`date+%s`;echo$($ts_now-$ts_boot))
我正在为macOS编写一个shell脚本,需要几秒钟的正常运行时间。这非常有用。
$1 Gives you "sysctl kern.boottime"
$2 Gives you "{"
$3 Gives you "sec"
kern.boottime: { sec = 1604030189, usec = 263821 } Fri Oct 30 09:26:29 2020