CodeGym /Adesua ahorow /Docker SELF /Bash 腳本入門:語法、變數、指令

Bash 腳本入門:語法、變數、指令

Docker SELF
等級 3 , 課堂 3
開放

Bash 腳本入門:語法、變數、指令

1. 什麼是 bash 腳本?

如果你曾經想過:「為什麼我需要一遍又一遍地執行相同的命令?」那麼恭喜你,已經準備好學習 bash 腳本了!Bash 腳本是一種通過在一個文件中寫下命令序列來自動化 Linux 工作的方式。Bash (Bourne Again Shell) 不僅僅是一個 shell,它是管理員、程式設計師以及所有希望讓系統為自己工作的人的瑞士軍刀。

Bash 腳本的優勢

  • 節省時間:寫一次——運行八次。
  • 任務可重複性:只要你寫得正確,每次運行腳本都會得到相同的結果。
  • 自動化日常工作:創建自訂命令來備份、資源監控或管理文件。

2. 編寫腳本的基礎

好吧,我們開始吧。Bash 腳本就是一個簡單的文字檔案,裡面包含了一些命令。但為了讓 Linux 知道這是一個腳本而不是日記中的隨機記錄,必須遵循特定的規則。

步驟 1:檔案名稱和格式

Bash 腳本通常使用副檔名 .sh(但這不是必須的)。例如:

hello_world.sh
backup_script.sh

步驟 2:必須的開頭

每個 bash 腳本都以以下內容開始:

#!/bin/bash

這一行叫做 shebang,告訴系統執行腳本需要使用 interpretor /bin/bash。沒有這行,系統只會看著你的腳本,無奈地嘆氣,然後啥也不做。

步驟 3:最簡單的腳本

我們來創建並運行一個腳本,它會顯示「哈囉,世界!」的文本。畢竟,為什麼不呢?

  1. 創建文件:

    nano hello_world.sh
    
  2. 新增行:

    #!/bin/bash
    echo "哈囉,世界!"
  3. 將檔案設為可執行:

    chmod +x hello_world.sh
    
  4. 執行腳本:

    ./hello_world.sh
    

在螢幕上你會看到:

哈囉,世界!

3. 使用變數

變數是你腳本中的資料存儲器。它們讓腳本變得更靈活且好用。

建立變數

要宣告一個變數,可以使用以下格式:

變數名稱="值"

範例:

NAME="Linux"
echo "歡迎來到 $NAME!"

輸出:

歡迎來到 Linux!

注意:變數名稱與等號 = 之間不可以有空格。如果加上空格,bash 會以為你在寫一些奇怪的東西,然後回報錯誤。

內建變數

Bash 提供了幾個預設的變數,例如:

  • $USER — 當前使用者。
  • $HOME — 使用者的家目錄。
  • $PWD — 當前工作目錄。

試試看這段腳本:

#!/bin/bash
echo "你好, $USER!"
echo "你的家目錄是: $HOME"
echo "你現在在這裡工作: $PWD"

4. 從使用者獲取資料

有時候腳本需要從使用者獲取資料以便運行。可以使用 read 指令來做到這一點。

範例:

#!/bin/bash
echo "你叫什麼名字?"
read NAME
echo "你好, $NAME!"

運行腳本後,你可以輸入你的名字,腳本會個性化地向你問好。


5. 在腳本中使用命令

Bash 允許你執行命令,就像你在終端中輸入它們一樣。

例如:

#!/bin/bash
echo "現在的日期和時間是:"
date

date 命令會顯示當前的日期和時間,例如:

現在的日期和時間是:
Mon Oct 30 12:34:56 UTC 2023

將命令結果存入變數

可以使用 $() 將命令的輸出存入變數。這對後續數據處理很方便。

範例:

#!/bin/bash
CURRENT_DATE=$(date)
echo "當前時間是: $CURRENT_DATE"

6. 腳本中的註解

記得永遠加上註解,這樣一個月後你還能明白你到底寫了什麼。使用符號 # 來添加註解:

#!/bin/bash
# 這是一個歡迎腳本
echo "歡迎來到Bash的世界!"

註解會被解釋器忽略,不會影響執行。


7. 範例

現在我們來寫一個腳本檢查檔案是否存在。

  1. 創建檔案:

    nano file_checker.sh
    
  2. 新增代碼:

    #!/bin/bash
    
    # 請求檔案名稱
    echo "請輸入檔案名稱:"
    read FILE_NAME
    
    # 檢查檔案是否存在
    if [ -f "$FILE_NAME" ]; then
        echo "檔案 $FILE_NAME 存在。"
    else
        echo "檔案 $FILE_NAME 未找到。"
    fi
  3. 將檔案設為可執行並運行:

    chmod +x file_checker.sh
    ./file_checker.sh
    
  4. 腳本運行範例:

    請輸入檔案名稱:
    test.txt
    檔案 test.txt 存在。
    

8. 常見錯誤

寫 bash 腳本不僅有趣,但有時也會讓人抓狂。以下是幾個常見錯誤:

  1. 忘記加 shebang。
    如果沒有加上 #!/bin/bash 這行,腳本可能會嘗試使用其他解釋器執行,導致錯誤。

  2. 未宣告的變數。
    如果你不小心在變數名稱上打錯字,bash 會將其視為空值。可以在腳本開頭加入 set -u 啟用嚴格檢查模式。

  3. = 兩邊加空格。
    永遠不要這樣寫:VARIABLE = "value"。這會導致錯誤。

  4. 權限問題。
    如果腳本沒有執行權限,用 chmod +x 添加它。

實作練習

  1. 寫一個腳本,執行以下操作:

    • 請求使用者的名字。
    • 顯示歡迎詞。
    • 顯示目前的日期和時間。
  2. 寫一個腳本,執行以下操作:

    • 請求使用者輸入檔案名稱。
    • 如果檔案不存在則創建,或告知檔案已存在。

現在你已經了解了 bash 腳本的基礎!接下來要學習如何添加條件和迴圈,不過這是下一堂課的內容。衝吧,把世界自動化!

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION