马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!数组作为一种特别的数据布局在任何一种编程言语中都有它的一席之地,固然bashshell也不破例。本文就shell数组来做一个小的总结。
在这里只会商一维数组的情形,关于***数组(现实上,你得用一维数组的***来摹拟),不触及。这里包含数组的复制,盘算,删除,交换。
数组的声明:
[size=1em][size=1em]1
[size=1em][size=1em]1)array[key]=value#array[0]=one,array[1]=two
[size=1em][size=1em]1
[size=1em][size=1em]2)declare-aarray#array被看成数组名
[size=1em][size=1em]1
[size=1em][size=1em]3)array=(value1value2value3...)
[size=1em][size=1em]1
[size=1em][size=1em]4)array=([1]=one[2]=two[3]=three...)
[size=1em][size=1em]1
[size=1em][size=1em]5)array="onetwothree"#echo${array[0|@|*]},把array变量看成数组来处置,但数组元素只要字符串自己
数组的会见:
[size=1em][size=1em]1
[size=1em][size=1em]1)${array[key]}#${array[1]}
数组的删除
[size=1em][size=1em]1
[size=1em][size=1em]1)unsetarray[1]#删除数组中第一个元素
[size=1em][size=1em]1
[size=1em][size=1em]2)unsetarray#删除全部数组
盘算数组的长度:
[size=1em][size=1em]1
[size=1em][size=1em]1)${#array}
[size=1em][size=1em]1
[size=1em][size=1em]2)${#array[0]}#同上。${#array
}、${#array[@]}。注重同#{array:0}的区分
数组的提取
从尾部入手下手提取:
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em][size=1em]array=([0]=one[1]=two[2]=three[3]=four)
[size=1em]${array[@]:1}#twothreefour,撤除第一个元素后一切元素,那末${array[@]:0}暗示一切元素
[size=1em]${array[@]:0:2}#onetwo
[size=1em]${array[@]:1:2}#twothree
子串删除
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
[size=1em]9
[size=1em]10
[size=1em]11
[size=1em]12
[size=1em]13
[size=1em]14
[size=1em]15
[size=1em][size=1em][root@localhostdev]#echo${array[@]:0}
[size=1em]onetwothreefour
[size=1em]
[size=1em][root@localhostdev]#echo${array[@]#t*e}#右边入手下手最短的婚配:"t*e",这将婚配到"thre"
[size=1em]onetwoefour
[size=1em]
[size=1em][root@localhostdev]#echo${array[@]##t*e}#右边入手下手最长的婚配,这将婚配到"three"
[size=1em]
[size=1em][root@localhostdev]#array=([0]=one[1]=two[2]=three[3]=four)
[size=1em]
[size=1em][root@localhostdev]#echo${array[@]%o}#从字符串的开头入手下手最短的婚配
[size=1em]onetwthreefour
[size=1em]
[size=1em][root@localhostdev]#echo${array[@]%%o}#从字符串的开头入手下手最长的婚配
[size=1em]onetwthreefour
子串交换
[size=1em][size=1em]1
[size=1em][size=1em][root@localhostdev]#array=([0]=one[1]=two[2]=three[3]=four)
第一个婚配到的,会被删除
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em][root@localhostdev]#echo${array[@]/o/m}
[size=1em]mnetwmthreefmur
一切婚配到的,城市被删除
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em][root@localhostdev]#echo${array[@]//o/m}
[size=1em]mnetwmthreefmur
没有指定交换子串,则删除婚配到的子符
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em][root@localhostdev]#echo${array[@]//o/}
[size=1em]netwthreefur
交换字符串前端子串
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em][root@localhostdev]#echo${array[@]/#o/k}
[size=1em]knetwothreefour
交换字符串后端子串
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em][root@localhostdev]#echo${array[@]/%o/k}
[size=1em]onetwkthreefour
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |