我需要与 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 上。
知道了...
$sysctl -n kern.boottime | cut -c14-18
87988
然后我将其转换为可读格式(不记得如何):
1 天 00:26:28
Macintosh 上根本没有“/proc”目录。
sysctl kern.boottime
你会得到这样的回应:
kern.boottime: { sec = 1362633455, usec = 0 } Wed Mar 6 21:17:35 2013
boottime=`sysctl -n kern.boottime | awk '{print $4}' | sed 's/,//g'`
unixtime=`date +%s`
timeAgo=$(($unixtime - $boottime))
uptime=`awk -v time=$timeAgo 'BEGIN { seconds = time % 60; minutes = int(time / 60 % 60); hours = int(time / 60 / 60 % 24); days = int(time / 60 / 60 / 24); printf("%.0f days, %.0f hours, %.0f minutes, %.0f seconds", days, hours, minutes, seconds); exit }'`
echo $uptime
将返回类似 1 Day, 20 hours, 10 minutes, 55 seconds
这是我获取值而不是 Cut 方法的方法
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