LinuxMastery By asdlkfj

LinuxMastery 20: Shell Script 基礎入門

將指令串成程式

當你需要依序執行三個指令,或者需要判斷「如果檔案存在才執行...」,你就需要寫 Shell Script。它不需要編譯,副檔名通常是 .sh

核心語法詳解

  1. Shebang
    腳本的第一行必須是 #!/bin/bash,告訴系統用哪個解釋器來執行。

  2. 變數

    NAME="Hank"
    echo "Hello, $NAME"
    

    注意:等號兩邊不能有空格

  3. 條件判斷 (if)

    if [ -f "/etc/hosts" ]; then
        echo "檔案存在"
    else
        echo "檔案不存在"
    fi
    

    注意:[] 內部必須有空格。

  4. 執行腳本
    先給予執行權限:chmod +x script.sh
    然後執行:./script.sh

實戰範例:簡單的備份腳本

#!/bin/bash

# 定義備份目錄與日期
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)

# 建立備份目錄 (如果不存在)
mkdir -p $BACKUP_DIR

# 打包 /var/www/html
echo "Starting backup..."
tar -czf $BACKUP_DIR/web_$DATE.tar.gz /var/www/html

# 檢查是否成功 ($? 為上個指令的回傳值,0 代表成功)
if [ $? -eq 0 ]; then
    echo "Backup Success!"
else
    echo "Backup Failed!"
fi

實戰心法

寫 Script 是運維自動化的起點。建議養成良好習慣:多寫註解、變數名稱要清楚、並檢查每個關鍵指令的執行結果。隨著能力提升,你可以結合 awk, sed 處理更複雜的邏輯,甚至用 Script 呼叫 AWS CLI 來管理雲端資源。