避免卷曲失败时脚本退出

时间:2016-05-20 12:56:13

标签: bash shell curl

我用来等待服务启动并运行,但是在第一次尝试连接后使用curl并使整个脚本退出失败。 如何在卷曲失败后避免退出?我曾尝试在卷曲上使用--fail,但没有。

这是我的代码

 #!/bin/bash

 getX(){
      echo `curl --fail domain.com` --> should return an array
 }
 test(){
  result=`getX`
  while [ ${#result[@]} -eq 0 ]
     do
       echo "waiting"
       result=`getX`
  done
 }
 test

2 个答案:

答案 0 :(得分:2)

我的建议是不要使用输出,而是curl的返回码,那怎么样?

getX(){
      result=`curl --fail domain.com` --> should return an array
    rc=$?

 }
 test(){
  getX
  while [ $rc  -ne 0 ]
     do
       echo "waiting"
       getX
  done
 }
 test

答案 1 :(得分:1)

这永远不会导致数组为零。 请改用while [ -z "${result[0]}" ]。另外,将curl的--fail替换为-s