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 $sudoPWcat にパイプされるのですか? cat は-somewhere なしでそれを無視します。

  • $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

関連情報