
- 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 變數能夠儲存單個值。這些變數稱為標量變數。
Shell 支援一種稱為陣列變數的不同型別的變數。它可以同時儲存多個值。陣列提供了一種對一組變數進行分組的方法。與其為每個所需的變數建立新的名稱,不如使用一個儲存所有其他變數的單個數組變數。
對於 Shell 變數討論的所有命名規則都適用於陣列命名。
定義陣列值
陣列變數和標量變數之間的區別可以解釋如下。
假設您嘗試將各種學生的姓名錶示為一組變數。每個單獨的變數都是一個標量變數,如下所示:
NAME01="Zara" NAME02="Qadir" NAME03="Mahnaz" NAME04="Ayan" NAME05="Daisy"
我們可以使用單個數組來儲存上面提到的所有名稱。以下是建立陣列變數的最簡單方法。這有助於為其索引之一賦值。
array_name[index]=value
這裡array_name是陣列的名稱,index是要設定的陣列中專案的索引,而value是要為該專案設定的值。
例如,以下命令:
NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy"
如果您使用的是ksh shell,則陣列初始化的語法如下:
set -A array_name value1 value2 ... valuen
如果您使用的是bash shell,則陣列初始化的語法如下:
array_name=(value1 ... valuen)
訪問陣列值
設定任何陣列變數後,您可以按如下方式訪問它:
${array_name[index]}
這裡array_name是陣列的名稱,而index是要訪問的值的索引。以下是一個示例,用於理解這個概念:
#!/bin/sh NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}"
以上示例將生成以下結果:
$./test.sh First Index: Zara Second Index: Qadir
您可以透過以下方式之一訪問陣列中的所有專案:
${array_name[*]} ${array_name[@]}
這裡array_name是您感興趣的陣列的名稱。以下示例將幫助您理解這個概念:
#!/bin/sh NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Method: ${NAME[*]}" echo "Second Method: ${NAME[@]}"
以上示例將生成以下結果:
$./test.sh First Method: Zara Qadir Mahnaz Ayan Daisy Second Method: Zara Qadir Mahnaz Ayan Daisy
廣告