ПОЯСНЕНИЯ
Когда этот вопрос был задан, ОП не сказал, что ему нужно количество ЛОГИЧЕСКИХ ядер, а не фактическое ядер, поэтому этот ответ логически (не каламбур) отвечает способом, позволяющим получить фактическое количество реальных физических ядер, а не число, которое ОС пытается виртуализировать с помощью гиперпоточности voodoo.
ОБНОВЛЕНИЕ ДЛЯ ОБРАБОТКИ FLAW В YOSEMITE
Из-за странной ошибки в OS X Yosemite (и, возможно, более новых версиях, таких как предстоящая El Capitan), я сделал небольшую модификацию. (Старая версия все еще работала на отлично, если вы просто игнорируете STDERR, и это все, что делает для вас модификация.)
Любой другой ответ, приведенный здесь, либо
- дает неверную информацию
- не дает информации, из-за ошибки в реализации команды
- работает невероятно медленно (занимает большую часть минуты , чтобы завершить), или
- дает слишком много данных и, следовательно, может быть полезно для интерактивного использования, но бесполезно, если вы хотите использовать данные программно (например, в качестве ввода для команды, такой как
bundle install --jobs 3
, где вы хотите вместо числа указать *). 1040 * - это на единицу меньше количества ядер, которое у вас есть, или, по крайней мере, не больше количества ядер)
Способ получить только количество ядер, надежно, правильно, достаточно быстро, без дополнительной информации или даже дополнительных символов вокруг ответа, таков:
system_profiler SPHardwareDataType 2> /dev/null | grep 'Total Number of Cores' | cut -d: -f2 | tr -d ' '