【陣列元素的格式】
array[index]
index從0開始。
【定義陣列】
在bash中定義陣列有兩種方法:
(1)直接在定義時為所有的陣列元素賦值:
[root@localhost shell]# array=(12345)
(2)對陣列中每個陣列元素進行賦值:
[root@localhost shell]# array[0]=1; array[4]=5; array[3]=4
使用這種方法對陣列定義時,可以不按照陣列下標的先後順序進行操作,也不必對陣列中的每乙個元素賦值。
(3)如果需要修改陣列中某個元素的值,可以使用陣列定義中的第二種方法:
[root@localhost shell]# array[1]=2[root@localhost shell]# array[
2]=3
...
(1)如果需要引用陣列中的某個元素,可以使用陣列名加索引的方式:
[root@localhost shell]# echo $3
與其他語言中引用陣列元素不同,在bash中需要將陣列元素放入大括號「{}」中,其目的是為了避免bash將陣列名誤解為乙個變數。
(2)如果不指定陣列索引,將會顯示陣列中的第1個元素的值:
[root@localhost shell]# echo $array1
(3)有時可能希望看到陣列中所有元素的值,這樣做的目的可能是為了檢查其值是否有錯誤:
[root@localhost shell]# echo $12345
上面示例中,「*」表示所有下標,也可以使用「@」。
(4)當陣列中的元素非常多時,可能檢視起來非常不方便,這是可以指定檢視的元素範圍,例如:
#檢視陣列中下標大於等於2的所有元素的值[root@localhost shell]# echo $34
5
(5)有時需要獲得陣列的長度,即陣列中一共有多少個元素。這是可以使用以下形式:
[root@localhost shell]# echo $5
(5)示例指令碼,按陣列元素的值從小到大排序:
[root@localhost shell]# cat example3.sh#!/bin/bash
#this
isa example script.
#2013/12/16
array=(123
45799
379622
895111
451000
)lenth=$
i=0while [ "
$i" -lt "
$lenth"]
doj=`expr $i + 1
`
while [ "
$j" -lt "
$lenth"]
doif [ "
$" -lt "$"
] then
temp=$
array[j]=$
array[i]=$temp
fij=`expr $j + 1
` done
i=`expr $i + 1
`done
echo $
unset array i j temp lenth
[root@localhost shell]# ./example3.sh4599
111123
379457
622895
1000
不再使用陣列時,應該清楚陣列,以**這些陣列占用的系統資源。與變數相同,清除陣列也使用unset命令。
(1)清除陣列array的第1個元素:
[root@localhost shell]# unset array[0]
(2)清除整個陣列:
[root@localhost shell]# unset array[root@localhost shell]# echo $
Shell中的陣列
一 陣列和字串 array 3 a b c echo array 1 輸出b,str a b c array str echo array 1 同樣輸出b,要注意 array str 中的右值的括號不能缺 上面這個就是我們常說的把字串放到乙個陣列中,也可以理解為動態陣列,比c和c 簡單多了 計算字串...
Shell中的陣列
二維陣列 構造成這樣 a 1 2 3 4 5 6 7 8 9 然後操作的時候利用第i行j列的元素等於i len j,len是陣列的第二維度大小,這樣做有時候更簡單,但是就必須得控制一下邊界了,比如3 3的陣列,你可能初始化只給出8個元素。一 陣列和字串 array 3 a b c echo arra...
shell中的陣列
shell作為一門語言那肯定是不能缺少陣列了,下面記錄了shell中陣列的一些相關內容。bash 提供了一維陣列變數。任何變數都可以作為乙個陣列 內建命令 declare 可以顯式地定義陣列。陣列的大小沒有上限,也沒有限制在連續對成員引用和賦值時有什麼要求。陣列以整數為下標,從 0 開始。下面的示例...