Linux-数组-关联数组-变量判断在一个数组的成员是否在另一个数组内

run=()
for j in `ls /test`
# 获取你想要的成员
do
        run[${#run[*]}]=${j}
        #加入到数组
done

#关联数组要声明 key值和成员一样 是为了删除成员 普通的数组的删除 没成功我

declare -A member01
member01=([m00]="m00" [m01]="m01" [m02]="m02" [m03]="m03" [m04]="m04" [m05]="m05" [m06]="m06" [m07]="m07" [m08]="m08" [m09]="m09" [m10]="m10" [m11]="m11" [m12]="m12" [m13]="m13" [m14]="m14") 

# 遍历组成员
for i in ${member01[@]}
do
if [[ "${run[@]}" =~ "$i" ]];then
    			#变量判断在一个数组的成员是否在另一个数组内
                echo "$i in run"
                # 在运行 就不用管了
        else
                echo "$i not in run"
                # 未运行 检查了要
                # check_data $1 $2 $i
        fi
done

# 关联数组的删除指定成员
# $3 传入指定的变量就行了 因为我这里 key 和 value 是一样的 所以可以这样删除
unset ${member}[${3}]
echo ${member[0]}              #打印数组中的第一个元素
echo ${member[@]}              #打印数组中的所有元素
echo ${member[*]}              #打印数组中的所有元素
echo ${!member[*]}             #打印数组中的所有元素的索引
echo ${!member[@]}             #打印数组中的所有元素的索引
echo ${#member[@]}             #打印数组中的元素的个数
echo ${#member[*]}             #打印数组中的元素的个数
echo ${member[@]:1}            #打印数组中的指定元素,截取
echo ${member[@]:1:2}          #打印数组中的指定元素,截取

记录:

主要因为之前的业务实时监控脚本是把正在运行的成员写入到文件 在文件对比在运行的成员 和 应该运行的成员 得出不在运行的成员 判断成员那个不存在 从而判断是否在运行 感觉很蠢!
现在改成用数组 来管理成员的添加和删除 从而判断业务是否在运行算是小进步把 这里列出了涉及到数组的部分

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值