
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 $sudoPW
canalizado al gato? El gato lo ignora sin un-
lugar.¿Y
$phycores
no 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$phycores
4, simplemente establece la$i
variable en{1..4}
.Vea esta pregunta en stackoverflowpara más detalles. (Una nueva línea$phycores
no 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