在Linux中,shell指令碼是一種用於自動化任務和簡化系統管理的強大工具。其中,條件語句和迴圈結構是編寫複雜shell指令碼的基石。
一、條件語句
條件語句用於基於某個或多個條件的真假來決定執行哪個程式碼塊。在shell指令碼中,最常用的條件語句是if
語句。
- 基本語法:
if [ 條件表示式 ]
then
# 如果條件為真,則執行這裡的程式碼
else
# 如果條件為假,則執行這裡的程式碼
fi
- 條件表示式:
- 使用
[ ]
(方括號)或[[ ]]
(雙方括號)來包含條件表示式。 - 使用比較運算子(如
-eq
表示等於,-ne表示不等於,-gt表示大於,-lt表示小於,-ge表示大於等於,-le表示小於等於)來比較數值。 - 使用字串比較運算子(如
=
表示等於,!=
表示不等於)來比較字串。 - 使用檔案測試運算子(如
-f
表示是否為檔案,-d
表示是否為目錄,-e
表示是否存在)來檢查檔案或目錄的狀態。
- 使用
- 示例:
#!/bin/bash
num1=10
num2=20
if [ $num1 -lt $num2 ]
then
echo "num1 is less than num2"
else
echo "num1 is not less than num2"
fi
二、迴圈結構
迴圈結構允許指令碼重複執行某段程式碼,直到滿足特定的條件。在shell指令碼中,常用的迴圈結構有for
迴圈和while
迴圈。
- for迴圈:
用於遍歷一系列元素(如陣列、列表或命令的輸出)並執行相同的操作。
基本語法:
for 變數 in 列表
do
# 執行操作
done
示例:
#!/bin/bash
fruits=("apple" "banana" "cherry")
for fruit in "${fruits[@]}"
do
echo "I like $fruit"
done
- while迴圈:
只要指定的條件為真,就會一直執行迴圈體中的程式碼。
基本語法:
while [ 條件表示式 ]
do
# 執行操作
done
示例:
#!/bin/bash
counter=0
while [ $counter -lt 5 ]
do
echo "This is iteration $counter"
counter=$((counter+1))
done
綜上所述:這些條件語句和迴圈結構是shell指令碼中非常基礎且重要的部分,透過組合使用它們,可以構建出複雜且功能強大的自動化指令碼。