我正在Linux中运行一个返回200的cURL命令。
curl -sL -w "%{http_code}" "http://google.com" -o /dev/null
然而,如果我运行如下,我得到"失败"作为输出:
if [ "curl -sL -w "%{http_code}" "http://google.com" -o /dev/null" == "200" ]; then echo "Success"; else echo "Fail"; fi
请告诉我这里有什么问题?
答案 0 :(得分:3)
您没有正确使用命令替换。用这种方式重写:
if [ "$(curl -sL -w '%{http_code}' http://google.com -o /dev/null)" = "200" ]; then
echo "Success"
else
echo "Fail"
fi
正如Charles建议的那样,只要您正在寻找成功或失败,您可以使用--fail
选项进一步简化此操作:
if curl -sL --fail http://google.com -o /dev/null; then
echo "Success"
else
echo "Fail"
fi
答案 1 :(得分:1)
if [ $(curl -sL -w "%{http_code}" "http://google.com" -o /dev/null) = 200 ]; then
echo "Success"
else
echo "Fail"
fi