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} #打印数组中的指定元素,截取
记录:
主要因为之前的业务实时监控脚本是把正在运行的成员写入到文件 在文件对比在运行的成员 和 应该运行的成员 得出不在运行的成员 判断成员那个不存在 从而判断是否在运行 感觉很蠢!
现在改成用数组 来管理成员的添加和删除 从而判断业务是否在运行算是小进步把 这里列出了涉及到数组的部分