Shell if 如何實(shí)現(xiàn)條件判斷

小樊
84
2024-10-14 15:05:00

在Shell腳本中,可以使用if語(yǔ)句進(jìn)行條件判斷。if語(yǔ)句的基本語(yǔ)法如下:

if [ condition ]; then
    # 當(dāng)條件成立時(shí)執(zhí)行的命令
elif [ condition ]; then
    # 當(dāng)條件成立時(shí)執(zhí)行的命令(可選,可以有多個(gè)elif)
else
    # 當(dāng)所有條件都不成立時(shí)執(zhí)行的命令
fi

其中,condition 是一個(gè)測(cè)試表達(dá)式,用于判斷條件是否成立。常用的測(cè)試操作符包括:

  • -eq:等于
  • -ne:不等于
  • -gt:大于
  • -lt:小于
  • -ge:大于等于
  • -le:小于等于
  • -z:字符串長(zhǎng)度為零
  • -n:字符串長(zhǎng)度不為零
  • -e:文件存在
  • -f:文件為普通文件
  • -d:目錄存在
  • -s:文件大小為0
  • -b:文件為塊設(shè)備
  • -c:文件為字符設(shè)備
  • -p:文件存在且是一個(gè)管道
  • -u:文件具有用戶讀權(quán)限
  • -g:文件具有組讀權(quán)限
  • -o:文件具有其他用戶讀權(quán)限
  • -w:文件具有寫(xiě)權(quán)限
  • -x:文件具有執(zhí)行權(quán)限

示例:

#!/bin/bash

num=10

if [ $num -eq 10 ]; then
    echo "The number is 10."
elif [ $num -lt 10 ]; then
    echo "The number is less than 10."
else
    echo "The number is greater than 10."
fi

在這個(gè)示例中,我們判斷變量num的值,如果等于10,輸出"The number is 10.“;如果小于10,輸出"The number is less than 10.”;否則輸出"The number is greater than 10."。

0