尝试在until循环中计算多个表达式时出错
我已经尝试了多个组合,如代码部分所示,但它们都不起作用。
尝试1:

until [ [ $http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url") ] = $http_success_code ]
do
     <something>
done

尝试2:
until [ $http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url") ] = [ $http_success_code ]
do
     <something>
done

尝试3:
until [ ($http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url")) = $http_success_code ]
do
     <something>
done

应输入-无语法错误
实际-语法错误

最佳答案

不能在测试表达式中进行变量赋值。你需要把作业和考试分开。像这样的事情可以奏效:

until {
        http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url")
        [[ "$http_response_code" = "$http_success_code" ]]
      }; do
  <something>
done

07-24 18:50
查看更多