shell脚本中以字符串作为变量名获取变量值的方式

shell脚本中以字符串作为变量名获取变量值的方式

worker_ip1='192.71.0.171'
i=1

##打印 ip的值为‘192.71.0.171’ 的值##
ip=$(eval echo \$worker_ip$i) 

实际应用例(循环检测mpp worker节点并进行有效无效操作):

#!/bin/bash
master_ip='192.71.0.170'
master_port='5432'
worker_ip1='192.71.0.171'
worker_port1='5432'
worker_ip2='192.71.0.172'
worker_port2='5432'
worker_ip3='192.71.0.173'
worker_port3='5432'
worker_ip4='192.71.0.174'
worker_port4='5432'
worker_ip5='192.71.0.175'
worker_port5='5432'
worker_ip6='192.71.0.176'
worker_port6='5432'

while true
do
    for i in {1..6}
    do
            ip=$(eval echo \$worker_ip$i)
            port=$(eval echo \$worker_port$i)
            # echo $ip
            # echo $port

            ping -c 5 $ip > /dev/null
            if [[ $? = 0 ]]; then
                    echo 'ok!' > /dev/null
            else
                    echo 'error!'> /dev/null
                    uxsql -h $master_ip -p $master_port -c "select master_disable_node('${ip}', ${port})" > dev/null
            fi
    done
    continue
done
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值