Я написал скрипт, который показывает количество физических ядер машины. Однако я хотел бы, чтобы результатом было число, а не строка.

Вот сценарий:

phycores=echo $sudoPW | cat /proc/cpuinfo | grep -m 1 "cpu cores" | awk '{print $ 4;}'
echo $phycores  

for i in {1..$phycores}
do
   echo "Core $i"
done

1 ответ1

1

Я замечаю несколько вопросов:

  • Почему echo $sudoPW кошке? кошка игнорирует это без - где-то.

  • И $phycores не устанавливается без обратных галочек или $() которые не могут быть реальным скриптом, который вы запускаете, и он все еще устанавливает $ phycores в число с новой строкой?

  • Конструкция {1..n} не работает с переменной, если ваши $phycores были 4, тогда она просто устанавливает переменную $i в {1..4} . Смотрите этот Q на stackoverflow для более подробной информации. (Новая строка в $phycores не должна иметь значения)

Во всяком случае, это должен быть более рабочий скрипт

phycores=$(echo $sudoPW|cat - /proc/cpuinfo|grep -m 1 "cpu cores"|awk '{print $ 4;}')

echo $phycores  

for ((i=1;i<=phycores;++i))
do
   echo "Core $i"
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .