数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号成为下标。
一维数组的定义、统计、引用和删除等操作。首
先来定义一个一维数组:
A=( test1 test2 test3 ) ,定义数组一般以括号的方式来定义,数组
的值可以随机定义。如何来引用呢?
echo ${A[0]},代表引用第一个数组变量,结果会显示 test1,数组引
用从 0 开始,代表第一个数组,依次类推。
echo ${A[1]},代表引用第二个数组变量,结果会显示 test2,数组引
用也是从 0 开始计算的。
如何显示该数组所有参数呢?echo ${A[@]} 将显示所有参数 test1
test2 test3 。
如何显示该数组参数个数呢?echo ${#A[@]} 将显示该数组的参数
个数 3。
如果替换某个数组呢?例如替换第二个 test2 数组为 test5:echo
${A[@]/test2/test5}
如何删除一个数组呢?例如删除 test3 数组命令为:unset A[2] ;echo
${A[@]}查看效果。那输入如何在编程来使用呢?请看下面例子:
!/bin/sh
Auto Make KVM Virtualization
Auto config bond scripts
eth_bond()
{
NETWORK=(
HWADDR=ifconfig eth0 |egrep "HWaddr|Bcast" |tr "\n" " "|awk '{print $5,$7,$NF}'|sed -e 's/addr://g' -e 's/Mask://g'|awk '{print $1}'
IPADDR=ifconfig eth0 |egrep "HWaddr|Bcast" |tr "\n" " "|awk '{print $5,$7,$NF}'|sed -e 's/addr://g' -e 's/Mask://g'|awk '{print $2}'
NETMASK=ifconfig eth0 |egrep "HWaddr|Bcast" |tr "\n" " "|awk '{print $5,$7,$NF}'|sed -e 's/addr://g' -e 's/Mask://g'|awk '{print $3}'
GATEWAY=route -n|grep "UG"|awk '{print $2}'
)
cat >ifcfg-bond0<<EOF
DEVICE=bond0
BOOTPROTO=static
${NETWORK[1]}
${NETWORK[2]}
${NETWORK[3]}
ONBOOT=yesTYPE=Ethernet
NM_CONTROLLED=no
EOF
如上脚本为定义三个数组变量,然后分别来引用。