iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
DevOps

一步步學DevOps:30天入門計劃系列 第 12

Day 12 Shell Script 基礎介紹-1

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230926/20139800TsDMu1Dzzx.jpg

Shell Script基本結構元素:

1. Shebang行:

#!/bin/bash

位於shell script文件的起始位置,通常以#! 開頭後面接著一個解釋器(interpreter)的路徑,用來告訴系統使用哪種shell來執行script,系統會自動使用指定的解釋器執行script。
#!/bin/bash即是指定使用Bash作為Shell的解釋器在作業系統中執行shell script文件。

2. 註釋:

# 這是一個Shell script 的範例

使用 # 符號來添加註釋以說明代碼的功能、變數、或特定的操作。註釋不會被執行僅供備註閱讀。

3. 變數聲明/使用:

my_variable="Hello World!"

變數名 = 參數,用 = 將參數指定給變數。

echo ${myVariable} 會輸出 “Hello World!”

使用變數時,我們需要在變數名前加上符號 $

4. 命令:

echo "This is a shell script."

Shellscript包含各種命令的區塊。這些命令可以是系統命令、或自定義的函數調用或其他shell指令。

5.流程控制:

可以使用條件語句(如 if、else、case)和迴圈(如 for、while)來執行流程控制,根據指定條件執行不同的代碼區塊。

if [ $age -ge 18 ]; then
    echo "You are an adult."
else
    echo "You are not yet an adult."
fi

6.函數:
可以定義函數來將程式碼組織成模組區塊可以重複使用。函數能夠接受參數與返回值。

function greet {
    echo "Hello, $1!"
}
greet "Alice"

Shell Script 變數詳細介紹:

變 數

在Shell script中變數是用來存儲和操作數據的基本單元。可以存儲文本、數字、文件名等各種類型的數據。以下介紹Shell script中的變數結構:

1. 變數的定義

在Shell script 中,你可以使用以下方式定義變數:

variable_name="value"

這裡的 variable_name 是變數的名稱,而 "value" 則是該變數的值。注意,變數名稱不得包含空格,並且通常使用英文字母、數字和下劃線(_)。

my_variable="Hello, World!"

變數賦值:變數賦值通常使用 = 符號。

2. 讀取變數值

要讀取變數的值,可以使用 $ 符號加上變數名稱

echo $variable_name

執行echo 命令輸出變數 variable_name 的值。

3. 特殊變數

Shell script中有一些特殊變數,它們提供的資訊包括命令行參數、參數數量和上一個命令的退出狀態。

  • $0:這個變數代表目前shellscript程式的檔案名稱(包括路徑)。它用於獲取script程式的名稱,可以使用它來確定程式的位置。例如,如果您執行一個名為myscript.sh的程式:
echo "檔案名稱是:$0"

執行後輸出:

檔案名稱是:./myscript.sh
  • $1, $2, ... $n:用於獲取命令行參數傳遞給程式的值。$1代表第一個參數,$2代表第二個參數,依此類推,$n代表第n個參數。
./myscript.sh arg1 arg2 arg3

那麼在程式中可以使用這些變數來訪問這些參數的值:

echo "第一個參數是:$1"
echo "第二個參數是:$2"
echo "第三個參數是:$3"

執行後輸出:

第一個參數是:arg1
第二個參數是:arg2
第三個參數是:arg3
  • $#:獲取傳遞給程式的命令行參數的數量。它代表了參數的個數。
./myscript.sh arg1 arg2 arg3

那麼在程式中可以使用$#來獲取參數的數量:

echo "傳遞給程式的參數數量是:$#"

執行後輸出:

傳遞給程式的參數數量是:3
  • $?:用於獲取上一個命令的退出狀態碼(返回值)。通常,0表示命令成功執行,非零值表示命令執行失敗或出現錯誤。您可以使用$?來檢查命令的執行結果:
if [ $? -eq 0 ]; then
    echo "命令成功執行"
else
    echo "命令執行失敗"
fi

4. 修改變數值

要修改變數的值,只需重新指定新的值,例如:

variable_name="new_value"

這樣就會將變數 variable_name 的值更改為 "new_value"。

5. 刪除變數

要刪除變數,可以使用 unset 命令,例如:刪除變數 variable_name。

unset variable_name

6. 變數的類型

在Shell script中的變數包括字符串、整數和陣列等。以下是一些常見的Shell script變數類型:

  • 字符串(String):字符串是最常見的變數類型。它們用來儲存文本數據,可以是單引號(')或雙引號(")括起來的字符序列。
name="John"
message='Hello, World!'
  • 整數(Integer):整數變數用於儲存整數值,通常不需要引號。例如:
count=10
  • 陣列(Array):Shell script支援陣列,可以用來儲存多個值。陣列可以包含字符串或整數。例如:
fruits=("apple" "banana" "orange")
numbers=(1 2 3 4 5)

7.變數的作用域

在Shell script中支援兩種變數類型:區域變數和全域變數。區域變數僅在定義它們的函數或區域中可使用,而全域變數在整個shell script都可使用。默認情況下,變數只在定義它的區域中可使用,稱為區域變數。如果想讓變數在不同區域之間共享,可以使用 export 將變數改為全域變數。

8.特殊的環境變數

Shellscript 還包含一些特殊的環境變數,用於設置系統的運行環境。一些常見的環境變數包括:

  • $HOME:代表當前的主目錄路徑,通常用於訪問家目錄。
echo "你的家目錄是:$HOME"
  • $USER:代表當前使用者名。
echo "你的使用者名是:$USER"
  • $PWD:代表當前工作目錄的路徑。
echo "當前工作目錄是:$PWD"
  • $SHELL:代表當前所使用的Shell的路徑。
echo "你正在使用的Shell是:$SHELL"
  • $PATH:包含了Shell用於查詢可執行命令的目錄列表。这個變數定義了系统的執行路徑。
echo "當前的PATH環境變數是:$PATH"

上一篇
Day 11 Shell Script自動化部署和測試
下一篇
Day 13 Shell Script 基礎介紹-2
系列文
一步步學DevOps:30天入門計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言