Shell if 如何進(jìn)行邏輯運(yùn)算

小樊
82
2024-10-14 14:45:00

在Shell腳本中,if語(yǔ)句可以使用邏輯運(yùn)算符進(jìn)行條件判斷。常見(jiàn)的邏輯運(yùn)算符包括&&(邏輯與)、||(邏輯或)和!(邏輯非)。以下是這些運(yùn)算符的使用方法:

  1. 邏輯與(&&):當(dāng)兩個(gè)條件都為真時(shí),結(jié)果為真。否則為假。
if [ condition1 ] && [ condition2 ]; then
  # 當(dāng)condition1和condition2都為真時(shí),執(zhí)行這里的代碼
fi
  1. 邏輯或(||):當(dāng)兩個(gè)條件中至少有一個(gè)為真時(shí),結(jié)果為真。否則為假。
if [ condition1 ] || [ condition2 ]; then
  # 當(dāng)condition1和condition2中至少有一個(gè)為真時(shí),執(zhí)行這里的代碼
fi
  1. 邏輯非(!):對(duì)一個(gè)條件取反,即如果條件為真,則結(jié)果為假;如果條件為假,則結(jié)果為真。
if ! [ condition ]; then
  # 當(dāng)condition為假時(shí),執(zhí)行這里的代碼
fi

示例:

#!/bin/bash

num1=10
num2=20

if [ $num1 -lt $num2 ] && [ $num2 -gt 15 ]; then
  echo "num2大于num1且大于15"
elif [ $num1 -gt $num2 ] || [ $num2 -lt 10 ]; then
  echo "num1大于num2或num2小于10"
else
  echo "沒(méi)有滿足的條件"
fi

在這個(gè)示例中,我們比較了兩個(gè)數(shù)字num1num2的大小關(guān)系,并根據(jù)不同的條件執(zhí)行相應(yīng)的代碼塊。

0