Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> linux shell 數組建立及使用技巧

linux shell 數組建立及使用技巧

日期:2017/2/7 14:27:48      編輯:Linux教程
 

linux shell在編程方面比windows 批處理強大太多,無論是在循環、運算。已經數據類型方面都是不能比較的。 下面是個人在使用時候,對它在數組方面一些操作進行的總結。

 

1.數組定義

 

[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1

 

一對括號表示是數組,數組元素用“空格”符號分割開。

 

2.數組讀取與賦值
•得到長度:


[chengmo@centos5 ~]$ echo ${#a[@]}
5


用${#數組名[@或*]} 可以得到數組長度
•讀取:


[chengmo@centos5 ~]$ echo ${a[2]}
3


[chengmo@centos5 ~]$ echo ${a[*]}
1 2 3 4 5


用${數組名[下標]} 下標是從0開始 下標是:*或者@ 得到整個數組內容
•賦值:


[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

直接通過 數組名[下標] 就可以對其進行引用賦值,如果下標不存在,自動添加新一個數組元素
•刪除:


[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.特殊使用
•分片:


[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


[chengmo@centos5 ~]$ c=(${a[@]:1:4})
[chengmo@centos5 ~]$ echo ${#c[@]}
4
[chengmo@centos5 ~]$ echo ${c[*]}
2 3 4 5


直接通過 ${數組名[@或*]:起始位置:長度} 切片原先數組,返回是字符串,中間用“空格”分開,因此如果加上”()”,將得到切片數組,上面例子:c 就是一個新數據。
•替換:


[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


調用方法是:${數組名[@或*]/查找字符/替換字符} 該操作不會改變原先數組內容,如果需要修改,可以看上面例子,重新定義數據。

 

從上面講到的,大家可以發現linux shell 的數組已經很強大了,常見的操作已經綽綽有余了。
 

Copyright © Windows教程網 All Rights Reserved