shell数组编程

数组是相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变量用一个名字命名,然后用编号区分它们变量的集合,这个名称即为数组名,编号即为下标。Linux shell编程中常用一维数组。
数组的设计实际上是为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式,以减少重复频繁的单独定义,如图所示。

定义数组一般以小括号的方式来定义,数组的值可以随机指定,以下为一维数组的定义、统计、引用和删除操作详解。
(1)一维数组定义及创建,代码如下:

在这里插入图片描述
(2)数组下标一般从0开始,引用数组的方法详解如下:
•□ echo${JFTEST[0]}:引用第一个数组变量,结果打印test1。
•□ echo${JFTEST[1]}:引用第二个数组变量。
•□ echo${JFTEST[@]}:显示该数组所有参数。
•□ echo${#JFTEST[@]}:显示该数组参数个数。
•□ echo${#JFTEST[0]}:显示test1字符长度。
•□ echo${JFTEST[@]:0}:打印数组所有的值。
•□ echo${JFTEST[@]:1}:打印从第二个值开始的所有值。
•□ echo${JFTEST[@]:0:2}:打印第一个值与第二个值。
•□ echo${JFTEST[@]:1:2}:打印第二个值与第三个值。
(3)数组替换操作,详解如下:
•□ JFTEST=([0]=aaa)把下标0的值替换为aaa。
•□ echo${JFTEST[@]/test/edu}:将数组值test替换为edu。
•□ NEWJFTEST=’echo${JFTEST[@]/test/edu}’:将结果赋值新数组。
(4)数组删除操作,详解如下:
•□ unset array[0]:删除数组第一个值。
•□ unset array[1]:删除数组第二个值。
•□ unset array:删除整个数组。
(5)数组shell脚本企业案例一,网卡bond绑定脚本,代码如下:
#!/bin/bash

Auto Make KVM Virtualization

Auto config bond scripts

#By author song
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}'
)
}
eth_bond
cat > ifcfg-bond0<< EOF
DEVICE= bond0
BOOTPROTO = static
${NETWORK[0]}
${NETWORK[1]}
${NETWORK[2]}
${NETWORK[3]}
ONBOOT = yes
TYPE= Ethernet
NM_CONTROLLED=no
EOF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值