この章では、Unixにおけるシェルの意思決定を理解します。シェルスクリプトを作成する際に、指定された2つのパスから1つのパスを取る必要がある場合があります。例えば条件指定などがあります。
例えば朝6時に起きれば朝ごはんを食べる、7時なら食べるなど。
したがって、条件付きステートメントを使用して、プログラムが正しい決定を下し、適切なアクションを実行できるようにする必要があります。
Unixシェルは、さまざまな条件に基づいて異なるアクションを実行するために使用される条件文をサポートしています。ここでは、ここで2つの意思決定の声明を理解するでしょう –
if … elseステートメント
else文が有用な意思決定ステートメントであり、与えられたオプションのセットからオプションを選択するために使用できる場合は下記を使います。
Unixシェルはif … else文の次の形式をサポートしています-
-
-
a=10 b=20 if [ $a == $b ] then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi
if else fi 文 a=10 b=20 if [ $a == $b ] then echo "a is equal to b" else echo "a is not equal to b" fi
if … elif … else … fi文
-
a=10 b=20 if [ $a == $b ] then echo "a is equal to b" elif [ $a -gt $b ] then echo "a is greater than b" elif [ $a -lt $b ] then echo "a is less than b" else echo "None of the condition met" fi
ほとんどのif文は、前の章で説明した関係演算子を使用してリレーションをチェックします。
ケース… esac声明
複数のif … elifステートメントを使用して複数分岐を実行することができます。しかし、これは常に最良の解決策ではありません。特に、すべてのブランチが単一の変数の値に依存する場合にはそうです。
Unixシェルはcase … … esacステートメントをサポートしています。この状況を正確に処理し、if … elifステートメントを繰り返すより効率的です。
ここに詳細に記述されているesacステートメントのケースは1つだけです –
- case … esacステートメント
-
case word in pattern1) Statement(s) to be executed if pattern1 matches ;; pattern2) Statement(s) to be executed if pattern2 matches ;; pattern3) Statement(s) to be executed if pattern3 matches ;; *) Default condition to be executed ;; esac
次のページ