如何通过 POSIX 方式找出 shell 脚本中有多少个 CPU 线程?

如何通过 POSIX 方式找出 shell 脚本中有多少个 CPU 线程?

如何通过 POSIX 方式找出 shell 脚本中有多少个 CPU 线程?

我知道我可以以某种方式使用/proc/cpuinfo,但是如何仅获取重复行的计数,也许使用grep

答案1

getconf可能是最便携的,例如这个要点

#!/bin/sh

# Linux and similar...
CPUS=$(getconf _NPROCESSORS_ONLN 2> /dev/null) ||
# FreeBSD (and derivatives), OpenBSD, MacOS and similar...
CPUS=$(getconf NPROCESSORS_ONLN 2> /dev/null) ||
# Solaris and similar...
CPUS=$(ksh93 -c 'getconf NPROCESSORS_ONLN' 2> /dev/null) ||
# Give up...
CPUS=1

相关内容