
- Unix/Linux 初學者指南
- Unix/Linux - 首頁
- Unix/Linux - 什麼是 Linux?
- Unix/Linux - 入門
- Unix/Linux - 檔案管理
- Unix/Linux - 目錄
- Unix/Linux - 檔案許可權
- Unix/Linux - 環境
- Unix/Linux - 基本實用程式
- Unix/Linux - 管道和過濾器
- Unix/Linux - 程序
- Unix/Linux - 通訊
- Unix/Linux - vi 編輯器
- Unix/Linux Shell 程式設計
- Unix/Linux - Shell 指令碼
- Unix/Linux - 什麼是 Shell?
- Unix/Linux - 使用變數
- Unix/Linux - 特殊變數
- Unix/Linux - 使用陣列
- Unix/Linux - 基本運算子
- Unix/Linux - 決策
- Unix/Linux - Shell 迴圈
- Unix/Linux - 迴圈控制
- Unix/Linux - Shell 替換
- Unix/Linux - 引號機制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函式
- Unix/Linux - 手冊頁幫助
- 高階 Unix/Linux
- Unix/Linux - 標準 I/O 流
- Unix/Linux - 檔案連結
- Unix/Linux - 正則表示式
- Unix/Linux - 檔案系統基礎
- Unix/Linux - 使用者管理
- Unix/Linux - 系統性能
- Unix/Linux - 系統日誌
- Unix/Linux - 訊號和陷阱
Unix/Linux - 使用 Shell 變數
在本章中,我們將學習如何在 Unix 中使用 Shell 變數。變數是一個字元字串,我們為其分配一個值。分配的值可以是數字、文字、檔名、裝置或任何其他型別的資料。
變數只不過是指向實際資料的指標。Shell 使您能夠建立、分配和刪除變數。
變數名稱
變數名只能包含字母(a 到 z 或 A 到 Z)、數字(0 到 9)或下劃線字元(_)。
按照慣例,Unix Shell 變數的名稱將使用大寫字母。
以下示例是有效的變數名:
_ALI TOKEN_A VAR_1 VAR_2
以下是無效變數名的示例:
2_VAR -VARIABLE VAR1-VAR2 VAR_A!
您不能使用其他字元(例如!、*或-)的原因是這些字元對 Shell 具有特殊含義。
定義變數
變數定義如下:
variable_name=variable_value
例如:
NAME="Zara Ali"
上面的示例定義了變數 NAME 併為其分配了值“Zara Ali”。此型別的變數稱為標量變數。標量變數一次只能儲存一個值。
Shell 使您能夠在變數中儲存任何想要的值。例如:
VAR1="Zara Ali" VAR2=100
訪問值
要訪問儲存在變數中的值,請在其名稱前加上美元符號($):
例如,以下指令碼將訪問已定義變數 NAME 的值並在 STDOUT 上列印它:
#!/bin/sh NAME="Zara Ali" echo $NAME
上述指令碼將生成以下值:
Zara Ali
只讀變數
Shell 提供了一種方法,可以使用 read-only 命令將變數標記為只讀。在變數被標記為只讀後,其值將無法更改。
例如,以下指令碼在嘗試更改 NAME 的值時會生成錯誤:
#!/bin/sh NAME="Zara Ali" readonly NAME NAME="Qadiri"
上述指令碼將生成以下結果:
/bin/sh: NAME: This variable is read only.
取消設定變數
取消設定或刪除變數指示 Shell 從其跟蹤的變數列表中刪除該變數。一旦取消設定變數,您將無法訪問變數中儲存的值。
以下是使用unset命令取消設定已定義變數的語法:
unset variable_name
上述命令取消設定已定義變數的值。這是一個簡單的示例,演示了該命令的工作原理:
#!/bin/sh NAME="Zara Ali" unset NAME echo $NAME
上面的示例不列印任何內容。您不能使用 unset 命令來取消設定標記為readonly的變數。
變數型別
當 Shell 執行時,存在三種主要型別的變數:
區域性變數 - 區域性變數是在 Shell 的當前例項中存在的變數。它對 Shell 啟動的程式不可用。它們在命令提示符處設定。
環境變數 - 環境變數可用於 Shell 的任何子程序。某些程式需要環境變數才能正常執行。通常,Shell 指令碼僅定義其執行的程式所需的那些環境變數。
Shell 變數 - Shell 變數是 Shell 設定的特殊變數,Shell 為了正常執行而需要它。其中一些變數是環境變數,而另一些是區域性變數。