您的位置:首页 > 运维架构 > Shell

shell-------------数组

2012-07-03 14:26 141 查看
先看一个例子:

#!/bin/bash

area2=(zero one two three four)

echo "Origin is :"
echo ${area2[0]} ${area2[1]} ${area2[2]} ${area2[3]} ${area2[4]}

area2[1]=1
area2[4]=4
echo "After is :"
echo ${area2[0]} ${area2[1]} ${area2[2]} ${area2[3]} ${area2[4]}

echo ${#area2}

echo "One way to output the array:"
echo ${area2[@]}


输出:

root@vivi-Ideapad-Z460:~# ./myshell.sh

Origin is :

zero one two three four

After is :

zero 1 two three 4

4

One way to output the array:

zero 1 two three 4

root@vivi-Ideapad-Z460:~#

#!/bin/bash

area2=(zero one two three four)

echo "Origin is :"
echo ${area2[@]}

echo ${area2[@]:0} # 提取尾部的子串
echo ${area2[@]:1}
echo ${area2[@]:1:2}


root@vivi-Ideapad-Z460:~# ./myshell.sh

Origin is :

zero one two three four

zero one two three four

one two three four

one two

root@vivi-

#
子串删除
#
从字符串的前部删除最短的匹配,
#+匹配字串是一个正则表达式.
echo${arrayZ[@]#f*r} # one two three five five
#
匹配表达式作用于数组所有元素.
#
匹配了"four"并把它删除.
#字符串前部最长的匹配
echo${arrayZ[@]##t*e} # one two four five five
#
匹配表达式作用于数组所有元素.
#
匹配"three"并把它删除.
#字符串尾部的最短匹配
echo${arrayZ[@]%h*e} # one two t four five five
#
匹配表达式作用于数组所有元素.
#
匹配"hree"并把它删除.
#字符串尾部的最长匹配
echo${arrayZ[@]%%t*e} # one two four five five
#
匹配表达式作用于数组所有元素.
#
匹配"three"并把它删除.
#子串替换
#第一个匹配的子串会被替换
echo${arrayZ[@]/fiv/XYZ} # one two three four XYZe XYZe
#
匹配表达式作用于数组所有元素.
#所有匹配的子串会被替换
echo${arrayZ[@]//iv/YY} # one two three four fYYe fYYe
#
匹配表达式作用于数组所有元素.
#删除所有的匹配子串
#没有指定代替字串意味着删除
echo${arrayZ[@]//fi/} # one two three four ve ve
#
匹配表达式作用于数组所有元素.
#替换最前部出现的字串
echo${arrayZ[@]/#fi/XY} # one two three four XYve XYve
#
匹配表达式作用于数组所有元素.
#替换最后部出现的字串
echo${arrayZ[@]/%ve/ZZ} # one two three four fiZZ fiZZ
#
匹配表达式作用于数组所有元素.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: