お兄ちゃん!
今回は
test
を
有効に使う方法を
教えてくれるんだよね?
そうだよ!
今回は AND 演算子
&&
と
OR 演算子 ||
を学ぼう!
&&
まずは AND 演算子
&&
からだよ
このように書くんだ
コマンド1 && コマンド2
これは「 という意味になるよ
コマンド1
が成功したらコマンド2
を実行する」へー!
コマンド1
はまさに前回のtest
が使えるね!そのとおり!
nproc
を使って数値の大小で処理を分けてみよう!nproc
nproc
は CPU のコア数を表示してくれるんだったよね!実行結果はこうだったよ
4
それでは AND 演算子を使った例を見てみよう
[ "$(nproc)" -ge 4 ] && echo "この Linux システムはすごい! CPU のコアが $(nproc) 個もあるよ!"
ええっと…
$(nproc)
はCPU のコア数に置き換わるんだよねそれが4以上だったら成功になるのかな?そうそうその解釈で合っているよそれが成功を返したら次の
echo ...
が実行されるんだじゃあ実行してみるね!
この Linux システムはすごい! CPU のコアが 4 個もあるよ!
おお!期待どおりに動いたね!しかもコマンド展開のおかげでコア数も自動で挿入されるんだね!
いい感じだね!
||
次は OR 演算子
||
だねこれはこのように書くよコマンド1 || コマンド2
これは「 という意味になるよ
コマンド1
が失敗したらコマンド2
を実行する」AND 演算子
&&
の逆だね!早速 OR 演算子を試してみよう!
[ "$(nproc)" -ge 4 ] || echo "この Linux システムは頑張り屋! $(nproc) 個のコアを上手く使い回しているよ!"
じゃあ実行するね!
…あれ?今度は何も表示されないね?
[ $(nproc) -ge 4 ]
が成功したからだねこの場合 ||
の後ろのコマンドは実行されないんだうーん…何も表示されないのはちょっとさみしいな…
&&
と ||
は組み合わせられるんだ以下のように書くよ!コマンド1 && コマンド2 || コマンド3
このようにすると
コマンド1
が成功したら コマンド2
をコマンド1
が失敗したら コマンド3
を実行してくれるんだコマンド1
が成功でも失敗でもなんらかのコマンドが実行されるんだねそれでは CPU のコア数がどんな場合でもメッセージを表示するようにしてみよう!
[ "$(nproc)" -ge 8 ] \
&& echo "この Linux システムはすごい! CPU のコアが $(nproc) 個もあるよ!" \
|| echo "この Linux システムは頑張り屋! $(nproc) 個のコアを上手く使い回しているよ!"
今度は条件が失敗するように比較する数字を
4
から 8
に増やしたよ長くなるから「バックスラッシュ( で コマンドラインを分けて見やすくしているんだね!
\
)」そういうことだねでは実行してみようか
この Linux システムは頑張り屋!4 個のコアを上手く使い回しているよ!
おお!今度は OR 演算子の方のメッセージが表示されたね!
今回は AND 演算子
&&
とOR 演算子 ||
を学んだよ!これで条件によって処理を分けることができるんだまた &&
と ||
を組み合わせられよ最終的に必ずどちらかの処理が実行されるんだ!これらを使えば状況によって処理を柔軟に分けることができるよ