Lから始まるLinux

3章3話
readコマンド
3章4話 if文(使い方)
もくじ
3章5話
if文(実践)
if文(使い方)
若木 みどり
お兄ちゃん! シェルスクリプトって コマンドを順に書いていけば そのとおりに実行してくれるんだよね?
若木 しげる
そうなるよ でも状況に応じて処理の流れを 変えることができるんだ 今回はそれを学ぼう!
若木 みどり
ただ順番どおりに 実行するだけじゃなくて 必要があれば それを変えられるんだね!
基本構造
若木 しげる
まずはif文を学ぼう! コマンドの終了ステータスに応じて 処理を分ける仕組みだよ
if コマンド
then
  処理
fi
若木 しげる
これは コマンド成功した場合処理 を実行するよ
若木 みどり
あれ?これって AND 演算子 && と同じだよね?コマンド && 処理 と書けば短く書ける気がするんだけど…?
若木 しげる
そのとおりだね!実際、単純な条件分岐なら&& の方が簡潔なんだでもif文はもっと複雑な条件分岐ができるんだよ
詳細構造
若木 しげる
次のように書くと複数の条件を設定できるんだ
if コマンド1
then
  処理1
elif コマンド2
then
  処理2
else
  処理3
fi
若木 しげる
これは次のように動作するよ
  1. コマンド1 が成功したら 処理1 を実行して終了
  2. コマンド2 が成功したら 処理2 を実行して終了
  3. どちらも失敗したら処理3 を実行
若木 みどり
なるほど!elifelse を使えば条件をどんどん増やしていけるんだね
若木 しげる
そのとおり!さらに…
  • elif はいくつでも書ける
  • elifelse は省略できる
若木 しげる
以下のような場合はif文が適しているよ
  • 条件分岐が複雑な場合
  • 処理が複数行ある場合
  • ネスト構造を使う場合
若木 みどり
「ネスト構造」って?
若木 しげる
if文の処理の中にさらにif文があるような書き方だよそれを「入れ子、ネスト(nest)」と呼ぶんだ
若木 みどり
なるほど!単純な場合は && でいいけど複雑ならif文が便利ってことだね!
まとめ
若木 みどり
今回は if 文で条件によって処理を分けられることを学んだよ!
若木 しげる
次回は if 文を使ったスクリプトを書いてみよう!