百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> linux中shell对数组的操作例子
分享文章到:

linux中shell对数组的操作例子

发布时间:01/15 来源: 浏览: 关键词:
shell对数组的操作是非常的全面了,我们下面来为各位整理了一些关于shell对数组的操作例子了,希望例子能够对各位朋友带来帮助。


bash shell 只支持一维数组,shell中对数组的大小没有限制。数组元素的下标由0开始编号。

定义数组

Shell 定义数组例子:

array_name=(value0 value1 value2 valuen)
或者
array_name=(
value0
value1
value2
valuen
)

还可以单独定义数组的各个分量:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

可以不使用连续的下标,而且下标的范围没有限制。

一个例子看懂数组的操作

#!/bin/bash
array_name=('1' '22' '333' '4444')
#打印出所有的值
echo ${array_name[*]}
echo ${array_name[@]}
#默认输出数组的第一个值
echo $array_name
echo ${#array_name}
#读取数组的值
echo $array_name[3]
echo ${array_name[3]}
#输出数组长度
echo ${#array_name[@]}
echo ${#array_name[*]}
echo ${#array_name[1]}
#赋值操作
array_name[0]='888'
echo ${array_name[0]}

补充

1.数组的声明:


1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=( value1 value2 value3 ... )
4)array=( [1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身
2.数组的访问:

1)${array[key]} # ${array[1]}
3.数组的删除

1)unset array[1] # 删除数组中第一个元素
2)unset array # 删除整个数组
4.计算数组的长度:

1)${#array}
2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别
5.数组的提取
从尾部开始提取:

array=( [0]=one [1]=two [2]=three [3]=four )
${array[@]:1} # two three four,除掉第一个元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three
6.子串删除

[root@localhost dev]# echo ${array[@]:0}
one two three four

[root@localhost dev]# echo ${array[@]#t*e} # 左边开始最短的匹配:"t*e",这将匹配到"thre"
one two e four

[root@localhost dev]# echo ${array[@]##t*e} # 左边开始最长的匹配,这将匹配到"three"

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

[root@localhost dev]# echo ${array[@] %o} # 从字符串的结尾开始最短的匹配
one tw three four

[root@localhost dev]# echo ${array[@] %%o} # 从字符串的结尾开始最长的匹配
one tw three four
7.子串替换

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )[code]
第一个匹配到的,会被删除
[code][root@localhost dev]# echo ${array[@] /o/m}
mne twm three fmur
所有匹配到的,都会被删除

[root@localhost dev]# echo ${array[@] //o/m}
mne twm three fmur
没有指定替换子串,则删除匹配到的子符

[root@localhost dev]# echo ${array[@] //o

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有4人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板