ウェブサイト検索

Bash 論理 AND (&&) 演算子


論理演算子は、任意のプログラミング言語における論理式を定義するために使用されます。一般的に、Bashでは3種類の論理演算子が使用されます。それはAND、OR、NOTです。AND演算子とOR演算子は2つ以上の条件の間で使用されます。AND演算子は、すべての条件が真である場合に真を返します。それ以外の場合は偽を返します。"&&" 記号は、"if" 条件での論理AND式を定義するために使用されます。BashにおけるAND演算子の使用法は、このチュートリアルで示されています。

構文:

条件1 および 条件2 および … 条件N

論理AND演算子は、2つ以上の条件をチェックするために使用できます。すべての条件が真を返す場合に真を返します。

AND演算子の異なる使用法

このチュートリアルのこの部分では、Bashスクリプトで論理AND演算子を使用する方法が示されています。

例1: 2つの条件の間に論理ANDを使用する

以下のスクリプトを持つBashファイルを作成し、販売商品の合計数と販売額を受け取ります。次に、“if”条件の戻り値に基づいてボーナス額を計算します。このスクリプトでは、論理AND演算子を使用した3つの“if”条件と2つの条件が使用されています。もしどの“if”条件も真を返さない場合、ボーナスは0です。

#!/bin/bash

#Take two inputs from the user

echo -n "Enter the number of sales items:"

read number

echo -n "Enter the sales amount:"

read amount

#Calculate the bonus based on the output of the logical AND

if [[ $number -ge 15 && $amount -ge 50000 ]]; then

((bonus=$amount*15/100 | bc -l))

elif [[ $number -ge 10 && $amount -ge 25000 ]]; then

((bonus=$amount*10/100 | bc -l))

elif [[ $number -ge 5 && $amount -ge 10000 ]]; then

((bonus=$amount*5/100 | bc -l))

else

((bonus=0))

fi

#Print the values of the input values with the calculated bonus

echo "Number of Sales items: $number"

echo "Number of sales amount: $amount"

echo "Bonus amount: $bonus"

販売アイテムが6つで販売額が15000の場合、以下の出力が表示されます。

販売アイテムが25で、販売額が55000の場合、以下の出力が表示されます。

例2: 三つの条件の間で論理ANDを使用する

次のスクリプトを使用して、学生のMCQの点数、記述式の点数、および実験室の点数を取得するBashファイルを作成します。次に、論理AND演算子を使用して3つの条件がチェックされ、学生が試験に合格したか不合格したかが印刷されます。MCQの点数が30以上、記述式の点数が25以上、実験室の点数が25以上であれば、「あなたは試験に合格しました」というメッセージが表示されます。そうでない場合は、「あなたは試験に不合格でした」というメッセージが表示されます。

#!/bin/bash

#Take three input values from the user

echo -n "Enter the MCQ marks:"

read m1

echo -n "Enter the descriptive marks:"

read m2

echo -n "Enter the lab marks:"

read m3

#Print message based on the output of the AND operator

if [[ $m1 -ge 30 && $m2 -ge 25 && $m3 -ge 35 ]]; then

echo "You have passed the exam."

else

echo "You have failed the exam."

fi

MCQ=35、記述=41、ラボ=20の値でスクリプトを実行した後、以下の出力が表示されます。

MCQ=33、記述=45、ラボ=38の値でスクリプトを実行した後、以下の出力が表示されます。

例3:入れ子の「もし」文を使った論理AND

ユーザーから応募者ID、部門名、ポストを取得する次のスクリプトを持つBashファイルを作成します。次に、ポストと部門の値を論理AND演算子で確認します。この「if」文が真を返す場合、次の「if」文が確認されます。出力メッセージは、ネストされた「if」文の返された値に基づいて印刷されます。

#!/bin/bash

#Take input values from the user

echo -n "Enter the applicant ID:"

read id

echo -n "Enter the department name:"

read dept

echo -n "Enter the post name:"

read post

#Use of AND operator in nested if

if [[ $post == "Manager" && $dept == "HR" ]]; then

if [ $id == "5001" ]; then

echo "You are selected in the $dept department."

else

echo "You are not selected."

fi

elif [[ $post == "Accountant" && $dept == "Sales" ]]; then

if [ $id == "5620" ]; then

echo "You are selected in the $dept department."

else

echo "You are not selected."

fi

else

echo "Department or Post is invalid."

fi

ID="5002"、部署="HR"、および職位="マネージャー"の値でスクリプトを実行した後、次の出力が表示されます。

次の出力は、ID=「5620」、部門=「営業」、および職種=「会計士」の値でスクリプトを実行した後に表示されます。

結論

このチュートリアルでは、新しいBashプログラマーを助けるために、複数の例を用いてBashスクリプトにおける論理AND演算子の簡単な使い方を示しています。