一、if-else語句的基本語法
在Bash腳本中,if-else語句用於實現基本的條件分支。其基本語法如下:
if condition
then
command1
command2
...
else
command3
command4
...
fi
if語句後面跟着一個條件表達式,如果這個表達式成立,則執行then語句塊中的命令;否則,執行else語句塊中的命令。每個命令都必須用換行符或分號隔開。
下面是一個具體的例子:
#!/bin/bash
if [ $1 -gt 0 ]
then
echo "$1 is greater than zero"
else
echo "$1 is less than or equal to zero"
fi
這個腳本接受一個整數參數,如果這個參數大於0,則輸出”$1 is greater than zero”,否則輸出”$1 is less than or equal to zero”。
二、多重條件分支
if-else語句還可以實現多重條件分支,即判斷多個條件,根據不同的條件執行不同的命令。
可以使用elif語句來實現多重條件分支,其基本語法如下:
if condition1
then
command1
elif condition2
then
command2
elif condition3
then
command3
...
else
commandN
fi
只要滿足某個條件,就會執行相應的命令。如果沒有任何一個條件成立,則執行else語句塊中的命令。
下面是一個例子:
#!/bin/bash
if [ $1 -eq 1 ]
then
echo "Monday"
elif [ $1 -eq 2 ]
then
echo "Tuesday"
elif [ $1 -eq 3 ]
then
echo "Wednesday"
elif [ $1 -eq 4 ]
then
echo "Thursday"
elif [ $1 -eq 5 ]
then
echo "Friday"
elif [ $1 -eq 6 ]
then
echo "Saturday"
elif [ $1 -eq 7 ]
then
echo "Sunday"
else
echo "Invalid input"
fi
這個腳本接受一個1到7之間的整數參數,根據參數值輸出星期幾的名稱。如果參數不在1到7之間,則輸出”Invalid input”。
三、複合條件判斷
在if-else語句中,可以使用複合條件判斷來實現更加複雜的條件分支。常用的複合條件判斷有:
- 邏輯與(-a或者&&):判斷兩個條件是否同時成立。
- 邏輯或(-o或者||):判斷兩個條件是否有一個成立。
- 邏輯非(!):取反一個條件。
下面是一個例子:
#!/bin/bash
if [ $1 -gt 0 -a $1 -lt 10 ]
then
echo "$1 is between 0 and 10"
elif [ $1 -lt 0 -o $1 -gt 10 ]
then
echo "$1 is not between 0 and 10"
else
echo "$1 is either 0 or 10"
fi
這個腳本接受一個整數參數,如果這個參數在0和10之間(不包括0和10),則輸出”$1 is between 0 and 10″;如果這個參數小於0或者大於10,則輸出”$1 is not between 0 and 10″;如果這個參數等於0或者10,則輸出”$1 is either 0 or 10″。
四、小結
Bash的if-else語句提供了基本的條件分支功能,能夠幫助我們實現不同的命令執行邏輯。還可以使用多重條件分支和複合條件判斷來實現更加複雜的分支邏輯。掌握這些語法,能夠讓我們更加靈活地編寫Bash腳本。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253782.html