免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1892 | 回复: 1
打印 上一主题 下一主题

[文本处理] for 循环欠套while循环问题请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-13 18:24 |只看该作者 |倒序浏览
现在是想在while循环里第三次时,且CHECK 状态是jmxportok话,就退出第一条for循环,执行第二条for 循环。如果在规定的次数内获取状态异常,则报警并退出;如果没有问题的话,就按正常的流程走。

function get_appinfo()
{
IFS=$'\n';
for info in $(cat /opt/oracle/sor/deploy/batch/Operate_temp/TMP_two_command.xn5452   |grep -v ^#);
do
        let i++;
        app_ip=`echo $info | awk -F ";" '{print $2}' |awk '{print $3}'`;
        instance_name=`echo $info | awk -F ";" '{print $2}' |awk '{print $4}'`;
        echo "ip=${app_ip} instance=${instance_name}";

        #check deploy result loop
        local Check_Two_Node_Deploy_result_Count=0
        while [ ${Check_Two_Node_Deploy_result_Count} -lt ${Sleep_Index} ]
        do
                sleep ${Sleep_Duration}

                Get_Jmx_status  ${app_ip} ${instance_name}

                if [[ $i%2 -eq 1 ]]
                then
                        node_jmx_port_status1=${node_jmx_port_status};
                elif [[ $i%2 -eq 0 ]]
                then
                        node_jmx_port_status2=${node_jmx_port_status};
                fi

                if [[ ${node_jmx_port_status1} ==  "jmxportok" ]] && [[ ${Check_Two_Node_Deploy_result_Count} == "2" ]]
                then
                        echo "1111111Update_Node_Tmp_Deploy_Command ${app_ip} ${instance_name} ${app_name} ${instance_path} ${warpath_type}"
                        break
                elif  [[ ${node_jmx_port_status2} == "jmxportok" ]] && [[ ${Check_Two_Node_Deploy_result_Count} == "2" ]]
                then
                        echo "${app_ip} ${instance_name}  ${app_ip} ${instance_name}  all ok"
                        echo "22221Update_Node_Tmp_Deploy_Command ${app_ip} ${instance_name} ${app_name} ${instance_path} ${warpath_type}"
                        sleep 2
                        echo "Batch_Node_Deploy"
                        exit
                else
                        echo "${app_ip} ${instance_name}  ${app_ip} ${instance_name}  not all ok"
                fi        
               
                ((Check_Two_Node_Deploy_result_Count++));
        done

        if [[ ${Check_Two_Node_Deploy_result_Count} -eq ${Sleep_Index} ]]
        then
                echo "Check_Send ${Check_One_Node_Deploy_result_Count} ${app_ip} ${instance_name} "
                exit
        fi
done
}


   

论坛徽章:
0
2 [报告]
发表于 2015-01-13 18:28 |只看该作者
现在按上面方法执行的话,执行for第一条,再执行完第次数,且状态OK后,再去执行for循环第二条,但到break后就中断了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP