Bash 스크립트, 물리적 코어 수를 숫자로 가져오고 반복

Bash 스크립트, 물리적 코어 수를 숫자로 가져오고 반복

나는 기계의 여러 물리적 코어를 보여주는 스크립트를 작성했습니다. 그러나 결과가 문자열이 아닌 숫자이기를 바랍니다.

스크립트는 다음과 같습니다.

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

몇 가지 문제가 발견되었습니다.

  • echo $sudoPW고양이에게 파이프를 씌웠나요? 고양이는 어딘가 없이 그것을 무시합니다 -.

  • 그리고 $phycores백틱 없이는 설정되지 않거나 $()실행 중인 실제 스크립트가 될 수 없으며 여전히 $phycores를 줄 바꿈이 있는 숫자로 설정합니까?

  • {1..n}구성은 변수와 함께 작동하지 않습니다. $phycores4인 경우 변수 $i{1..4}.stackoverflow에서 이 Q를 참조하세요.상세 사항은. (개행 문자는 $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

관련 정보