Answers:
例如,您可以使用perl和一些简单的数学方法来执行此操作:
cat /proc/uptime | perl -ne '/(\d*)/ ; printf "%02d:%02d:%02d:%02d\n",int($1/86400),int(($1%86400)/3600),int(($1%3600)/60),$1%60'
如果不需要秒,则只需运行uptime
命令。然后可以将其输出简单地转换为DD:HH:MM。
例如,使用(仅当正常运行时间> 1h时,这种方式才能工作)
uptime | perl -ne '/(\d*) day[^\d]*(\d*):(\d*)/ ; printf "%02d:%02d:%02d\n", $1, $2, $3'
不,因为这并不是一个难题。使用整数除法将秒数除以86400,得到天数。将余数除以3600,得到小时数。将剩余的数除以60得到分钟数,然后剩下秒数。expr
如果您的Shell足够古老而不能原生支持算术,则可以使用命令从Shell进行所有操作
从纪元开始算起秒数并将其转换为人类可以理解的日期是一个难题,因此有一些标准方法可以做到这一点,例如date -r SECONDS
从外壳程序中。但这是一个不同的问题。
\n
对于换行会很好!