kc32668287 2022-09-16 22:47 采纳率: 28.3%
浏览 62
已结题

if循环语句的写法可以这样写吗?

请教一个脚本编程问题
if循环语句可以按照下面的写法吧?太久没用了,谢谢!

#!/bin/bash
#set -x
i2=`curl -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
if [ $i2 == "1" ]
   then
      echo "1"
    else
        sleep 60 
        i3=`curl -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
        if [ $i3 == "1" ]
           then
               echo "1"
           else
                sleep 60
                i4=`curl -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
        fi
                if [ $i4 == "1" ]
                   then
                       echo "1"
                   else 
                        sleep 60
                        i5=`curl -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
                fi
                        if [ $i5 == "1" ]
                           then 
                                 echo "1"
                           else
                                sleep 60
                                 i6=`curl -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
                        fi
                                  if [ $i6 == "1" ]
                                     then
                                        echo "1"
                                     else 
                                        echo "0"
                                  fi

fi


  • 写回答

2条回答 默认 最新

  • _GX_ 2022-09-16 23:38
    关注

    你这个用一个循环不就行了?

    #!/bin/bash
    #set -x
    
    for i in {1..5} ; do
        r=`echo -s 20.40.30.57:9100/metrics |egrep "^check_ok" |awk '{print $2}'`
        if [ "$r" == "1" ] ; then
            break
        else
            sleep 60
        fi
    done
    if [ "$r" == "1" ] ; then
        echo "1"
    else
        echo "0"
    fi
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月25日
  • 已采纳回答 9月17日
  • 创建了问题 9月16日