if文
CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 70/82。
これまで、あなたのスクリプトは上から下へすべてのコマンドを決定なしに実行してきました。しかし、特定の条件に基づいてスクリプトに異なる動作をさせたい場合、どうしますか?そこで if 文が登場します。
if 文は、スクリプトに決定を下させます。条件が true かどうかをチェックし、そうであればコードのブロックを実行します。基本的な構造は以下の通りです:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fi条件はスペースを周りに付けて角括弧の中に入れます。then キーワードは実行するコードの開始を示し、fi(if を逆から読んだもの)が文の終わりを示します。
条件が false の場合も else を使用して処理できます:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fi数値用の一般的な比較演算子には -eq (等しい)、-ne (等しくない)、-gt (より大きい)、-lt (より小さい)、-ge (以上)、-le (以下) が含まれます。文字列の場合は、等しい場合に = 、等しくない場合に != を使用します。
空の値によるエラーを避けるために、括弧の中にスペースを常に含め、変数を引用符で囲んでください。
チャレンジ
簡単check_score.sh という名前のシェルスクリプトを作成し、テストスコアを評価するために if 文を使用します。
スクリプトは以下のことを行うべきです:
- シェバン行 (
#!/bin/bash) で開始します scoreという名前の変数を75の値で作成します- スコアが 70 以上かどうかをチェックするために if 文を使用します
- true の場合、出力:
You passed! - false の場合、出力:
You failed.
スクリプトを実行可能にし、実行します。スコアが 75 であるため、出力は次のようになります:
You passed!ヒント: 「greater than or equal to」比較には
-geを使用し、角括弧内にスペースを含め、if 文をfiで終了することを忘れずに。
チートシート
if 文は、条件に基づいてスクリプトが決定を下すことを可能にします:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fi条件は、スペースを挟んで角括弧の中に記述します。then を使用してコードブロックの開始をマークし、fi で文を終了します。
条件が偽の場合を扱うために else を使用します:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fi一般的な比較演算子:
- 数値:
-eq(等しい)、-ne(等しくない)、-gt(より大きい)、-lt(より小さい)、-ge(以上)、-le(以下) - 文字列:
=(等しい)、!=(等しくない)
括弧内にスペースを必ず入れ、空の値によるエラーを避けるために変数を引用符で囲んでください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。