1. 1.数组定义 
  2.   
  3. a=(1 2 3 4 5
  4. echo $a 
  5. 1 
  6.  
  7. 一对括号表示是数组,数组元素用“空格”符号分割开。 
  8.   
  9. 2.数组读取与赋值 
  10. 得到长度: 
  11. echo ${#a[@]} 
  12. 5 
  13. 用${#数组名[@或*]} 可以得到数组长度 
  14. 读取: 
  15. echo ${a[2]}  
  16. 3 
  17. echo ${a[*]}  
  18. 1 2 3 4 5    
  19. 用${数组名[下标]} 下标是从0开始  下标是:*或者@ 得到整个数组内容 
  20. 赋值: 
  21. a[1]=100 
  22. echo ${a[*]}  
  23. 1 100 3 4 5 
  24.   
  25. a[5]=100      
  26. echo ${a[*]} 
  27. 1 100 3 4 5 100 
  28. 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素 
  29. 删除: 
  30. a=(1 2 3 4 5
  31. unset a 
  32. echo ${a[*]} 
  33. a=(1 2 3 4 5
  34. unset a[1]    
  35. echo ${a[*]}  
  36. 1 3 4 5 
  37. echo ${#a[*]} 
  38. 4 
  39. 直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。 
  40.   
  41.   
  42. 3.特殊使用 
  43. 分片: 
  44. a=(1 2 3 4 5
  45. echo ${a[@]:0:3
  46. 1 2 3 
  47. echo ${a[@]:1:4
  48. 2 3 4 5 
  49. c=(${a[@]:1:4}) 
  50. echo ${#c[@]} 
  51. 4 
  52. echo ${c[*]}  
  53. 2 3 4 5 
  54. 直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。 
  55. 替换: 
  56. a=(1 2 3 4 5)     
  57. echo ${a[@]/3/100
  58. 1 2 100 4 5 
  59. echo ${a[@]} 
  60. 1 2 3 4 5 
  61. a=(${a[@]/3/100})  
  62. echo ${a[@]}      
  63. 1 2 100 4 5 
  64. 调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。 
  65.  
  66.  
  67.  
  68.  
  69.  
  70. #建立数组 
  71. arr=("jsp" "php" "asp" ) 
  72.  
  73.  
  74. #取数组无元素个数 
  75. lenArr=${#arr} 
  76.  
  77.  
  78. #循环列出数组元素 
  79. i=0 
  80. while [ $i -lt $lenArr ] 
  81. do 
  82. echo ${arr[$i]} 
  83. let i++ 
  84. done 
  85.  
  86.  
  87. i=0 
  88. while [ $i -lt $lenArr ] 
  89. do 
  90.  
  91. echo ${arrArr[$i]} 
  92. let i++ 
  93. done