shell数组 模拟操作

kevin.Zhu 发布于:2013-1-16 16:05 分类:Shell  有 26 人浏览,获得评论 0 条  

  1. $ arr=(123 34 3 5)   

  2. $ echo $arr // 默认获取第一个元素   

  3. > 123   

  4. $ echo ${arr[1]} // 通过下标访问   

  5. > 34   

  6. $ echo ${arr[@]} // 访问整个数组 ,@或者* 获取整个数组   

  7. > 123 34 3 5   

  8. $ echo ${#arr[@]} // 获取数组的长度(最大下标) ,#获取长度 数组中是最后一个下标   

  9. > 3   

  10. $ echo ${#arr[3]} // 获取字符串长度   

  11. > 1   

  12. $ echo ${arr[@]:1:2} // 切片方式获取一部分数组内容   

  13. > 34 3   

  14. $ echo ${arr[@]:2} // 从第二个元素开始   

  15. > 3 5   

  16. $ echo ${arr[@]::2} // 到第二个元素   

  17. > 123 34   

  18.   

  19. 参考 http://www.tech-recipes.com/rx/642/bash-shell-script-accessing-array-variables/   

  20.   

  21. array 的模拟操作   

  22. – http://www.tech-recipes.com/rx/911/queue-and-stack-using-array/   

  23. push:   

  24. array=(”${array[@]}” $new_element)   

  25.   

  26. pop:   

  27. array=(${array[@]:0:$((${#array[@]}-1))})   

  28.   

  29. shift:   

  30. array=(${array[@]:1})   

  31.   

  32. unshift   

  33. array=($new_element “${array[@]}”)   

  34.   

  35. function del_array {   

  36. local i   

  37. for (( i = 0 ; i < ${#array[@]} ; i++ ))   

  38. do  

  39. if [ "$1" = "${array[$i]}” ] ;then   

  40. break  

  41. fi   

  42. done   

  43. del_array_index $i   

  44. }   

  45.   

  46. function del_array_index {   

  47. array=(${array[@]:0:$1} ${array[@]:$(($1 + 1))})   

  48. }  

上一篇:sphinx 使用手册
下一篇:blkid 命令