shell遍历多个数组
项目中拆分成多个微服务后,要shell启动多个服务,唯一的区别,就是启动类和环境不一样外,其他都是一样的,这样就抽出了2个数组,需要在一个for循环中遍历出来,demo如下:
[root@rocketmq-nameserver2 shell]# cat test6.sh
#!/bin/bash
a=(james tom jack)
b=(1 2 3)
# seq 0 `expr ${#a[@]} - 1`
for i in $(seq 0 `expr ${#a[@]} - 1`); do
_a=${a[i]}
_b=${b[i]}
echo $i, $_a, $_b
done
结果:
[root@rocketmq-nameserver2 shell]# sh test6.sh
0, james, 1
1, tom, 2
2, jack, 3
如果是单个数组的话:
[root@rocketmq-nameserver2 shell]# cat test5.sh
#!/bin/bash
day=(mon tue wed thu fri sat sun)
for word in ${day[@]}
do
echo $word
done
[root@rocketmq-nameserver2 shell]#
于是整合了一下,写了一个具体的demo
[root@rocketmq-nameserver2 shell]# cat base.conf
a=(4 5 6)
b=(1 2 3)
[root@rocketmq-nameserver2 shell]# cat test7.sh
#!/bin/bash
sum()
{
echo "求两个数的和..."
echo "两个数字分别为 $1 和 $2 "
echo $(($1+$2))
}
test(){
bash_path=$(cd "$(dirname "$0")";pwd)
source $bash_path/base.conf
for i in $(seq 0 `expr ${#a[@]} - 1`); do
c=${a[i]}
d=${b[i]}
sum $c $d
done
}
test
[root@rocketmq-nameserver2 shell]#
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。