尝试在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