定義陣列
在shell中,用括號來表示陣列,陣列元素用「空格」符號分割開。定義陣列的一般形式為:
**如下:
陣列名=(值1 值2 ... 值n)
例如:**如下:
array_name=(value0 value1 value2 value3)
或者 **如下:
array_name=(
value0
value1
value2
value3
)還可以單獨定義陣列的各個分量:
**如下:
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用連續的下標,而且下標的範圍沒有限制。
讀取陣列
讀取陣列元素值的一般格式是:
**如下:
$例如:
**如下:
valuen=$
使用@或#符號可以獲取陣列中的所有元素,例如:
**如下:$或
$獲取陣列的長度
獲取陣列長度的方法與獲取字串長度的方法相同在陣列名前加#,例如:
**如下:
# 取得陣列元素的個數
length=$
#或者length=$
# 取得陣列單個元素的長度
lengthn=$
陣列的宣告:
**如下:
array[key]=value # array[0]=one,array[1]=two
declare -a array # array被當作陣列名
array=( value1 value2 value3 ... )
array=( [1]=one [2]=two [3]=three ... )
array="one two three" # echo $,把array變數當作陣列來處理,但陣列元素只有字串本身
陣列的訪問:
**如下:
$ # $
陣列的刪除
**如下:
unset array[1] # 刪除陣列中第乙個元素
unset array # 刪除整個陣列
計算陣列的長度:
**如下:
$$ #同上。 $ 、$。注意同#的區別
陣列的提取
從尾部開始提取:
**如下:
array=( [0]=one [1]=two [2]=three [3]=four )
$ # two three four,除掉第乙個元素後所有元素,那麼$表示所有元素
$ # one two
$ # two three
子串刪除
**如下:
[root@localhost dev]# echo $
one two three four
[root@localhost dev]# echo $ # 左邊開始最短的匹配:"t*e",這將匹配到"thre"
one two e four
[root@localhost dev]# echo $ # 左邊開始最長的匹配,這將匹配到"three"
[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )
[root@localhost dev]# echo $ # 從字串的結尾開始最短的匹配
one tw three four
[root@localhost dev]# echo $ # 從字串的結尾開始最長的匹配
one tw three four
子串替換
**如下:
[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )
第乙個匹配到的,會被刪除
**如下:
[root@localhost dev]# echo $
mne twm three fmur
所有匹配到的,都會被刪除
**如下:
[root@localhost dev]# echo $
mne twm three fmur
沒有指定替換子串,則刪除匹配到的子符
**如下:
[root@localhost dev]# echo $
ne tw three fur
替換字串前端子串
**如下:
[root@localhost dev]# echo $
kne two three four
替換字串後端子串
**如下:
[root@localhost dev]# echo $
one twk three four
shell中迴圈命令的講解
一 for迴圈 for迴圈的格式為 for 變數名 in 列表 do 命令1 命令2 done 當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名訪問列表中取值。命令可為任何有效的shel命令和語句。變數名為任何單詞。in列表用法是可選的,如果不用它,for迴圈使用命令列的位置引數。in列表...
C C 中的陣列講解
筆者介紹 姜雪偉,it公司技術合夥人,it高階講師,csdn社群專家,特邀編輯,暢銷書作者,已出版書籍 手把手教你架構3d遊戲引擎 電子工業出版社和 unity3d實戰核心技術詳解 電子工業出版社等。陣列是儲存在連續記憶體位置的項的集合,這個想法是將多個相同型別的項宣告在一起。效果如下所示 在c中,...
Shell中的陣列
一 陣列和字串 array 3 a b c echo array 1 輸出b,str a b c array str echo array 1 同樣輸出b,要注意 array str 中的右值的括號不能缺 上面這個就是我們常說的把字串放到乙個陣列中,也可以理解為動態陣列,比c和c 簡單多了 計算字串...