Script Bash, obtenga el número de núcleos físicos como número e itere

Script Bash, obtenga el número de núcleos físicos como número e itere

Escribí un script que muestra varios núcleos físicos de la máquina. Sin embargo, me gustaría que el resultado fuera un número, no una cadena.

Aquí está el guión:

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

Respuesta1

Estoy detectando algunos problemas:

  • ¿Por qué el echo $sudoPWcanalizado al gato? El gato lo ignora sin un -lugar.

  • ¿Y $phycoresno se configura sin comillas invertidas o $()ese no puede ser el script real que estás ejecutando y aún así establece $phycores en un número con una nueva línea?

  • La {1..n}construcción no funciona con una variable, si fueras $phycores4, simplemente establece la $ivariable en {1..4}.Vea esta pregunta en stackoverflowpara más detalles. (Una nueva línea $phycoresno debería importar)

De todos modos, este debería ser un guión más funcional.

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

información relacionada