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}構造不適用於變量,如果您$phycores是 4 那麼它只是將$i變量設為{1..4}請參閱 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

相關內容