轉帖|行業資訊|編輯:鄭恭琳|2015-09-28 10:22:33.000|閱讀 154 次
概述:linux shell在編程方面比windows 批處理強大太多,無論是在循環、運算以及數據類型方面都是不能比較的。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
linux shell在編程方面比windows 批處理強大太多,無論是在循環、運算以及數據類型方面都是不能比較的。 下面是個人在使用時候,對它在數組方面一些操作進行的總結。
1.數組定義
|
1
2
|
[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo $a |
一對括號表示是數組,數組元素用“空格”符號分割開。
2.數組讀取與賦值
|
1
2
|
[chengmo@centos5 ~]$ echo ${#a[@]}5 |
用${#數組名[@或*]} 可以得到數組長度
|
1
2
|
[chengmo@centos5 ~]$ echo ${a[2]} 3 |
|
1
2
|
[chengmo@centos5 ~]$ echo ${a[*]} 1 2 3 4 5 |
用${數組名[下標]} 下標是從0開始 下標是:*或者@ 得到整個數組內容
|
1
2
3
4
5
6
7
|
[chengmo@centos5 ~]$ a[1]=100[chengmo@centos5 ~]$ echo ${a[*]} 1 100 3 4 5[chengmo@centos5 ~]$ a[5]=100 [chengmo@centos5 ~]$ echo ${a[*]}1 100 3 4 5 100 |
直接通過 數組名[下標] 就可以對其進行引用賦值,如果下標不存在,自動添加新一個數組元素
|
1
2
3
4
5
6
7
8
9
|
[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ unset a[chengmo@centos5 ~]$ echo ${a[*]}[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ unset a[1] [chengmo@centos5 ~]$ echo ${a[*]} 1 3 4 5[chengmo@centos5 ~]$ echo ${#a[*]}4 |
直接通過:unset 數組[下標] 可以清除相應的元素,不帶下標,清除整個數據。
3.特殊使用
|
1
2
3
4
5
|
[chengmo@centos5 ~]$ a=(1 2 3 4 5)[chengmo@centos5 ~]$ echo ${a[@]:0:3}1 2 3[chengmo@centos5 ~]$ echo ${a[@]:1:4}2 3 4 5 |
|
1
2
3
4
5
|
[chengmo@centos5 ~]$ c=(${a[@]:1:4})[chengmo@centos5 ~]$ echo ${#c[@]}4[chengmo@centos5 ~]$ echo ${c[*]} 2 3 4 5 |
直接通過 ${數組名[@或*]:起始位置:長度} 切片原先數組,返回是字符串,中間用“空格”分開,因此如果加上”()”,將得到切片數組,上面例子:c 就是一個新數據。
|
1
2
3
4
5
6
7
8
|
[chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo ${a[@]/3/100}1 2 100 4 5[chengmo@centos5 ~]$ echo ${a[@]}1 2 3 4 5[chengmo@centos5 ~]$ a=(${a[@]/3/100}) [chengmo@centos5 ~]$ echo ${a[@]} 1 2 100 4 5 |
調用方法是:${數組名[@或*]/查找字符/替換字符} 該操作不會改變原先數組內容,如果需要修改,可以看上面例子,重新定義數據。
轉自:
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn