ファイル内の行が存在するかどうかを確認しています

ファイル内の行が存在するかどうかを確認しています

ユーザーに CPU コアの数を尋ね、それを という変数に保存する bash スクリプトがあります$cores。ここで、この変数を に追加したい.bashrcので、ユーザーに CPU コアの数を尋ね、この値を に保存するかどうかを尋ねます.bashrc

ここで質問です:スクリプトがユーザーに再度問い合わせないように、$coresすでに存在するかどうかを確認するにはどうすればよいでしょうか?.bashrc

答え1

システムにコアがいくつあるかをユーザーに尋ねる代わりに、システムに尋ねてみてはいかがでしょうか。これは、ユーザー所有のファイルに書き込む必要がないので、より便利です。次のような例をご覧ください。これは、'getconf'を使用してNPROCESSORS_CONF変数を要求します。または、他のシステムの場合は、提示されたアイデアここsysctlまたは grep を使用して/proc/cpuinfoコアの数を見つけると役立つ場合があります。

答え2

これを試して:

'awk /\$core/ { print }'

答え3

変数が bash で設定されているかどうかを確認するには、次のコマンドを使用します。

if [[ -z "$cores" ]]
then
    echo "not set"
else
    echo "set"
fi

これは、変数が設定されているかどうかを確認します$cores。つまり、$cores が null の場合は「未設定」、それ以外の場合は「設定済み」と表示されます。実際のところ、シェル スクリプトを実行したときに起動されるような非対話型シェルでは、自動的にはソース化されません。したがって、ログイン インタラクティブ シェルと非ログイン インタラクティブ シェルの両方でソース化されるようにするには、ファイルの先頭近くに.bashrcを配置します。. .bashrc.bash_login.bashrc

関連情報