**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
三年前就关门了。
这篇文章是编辑并提交审查6个月前,未能重新打开后:
原始关闭原因未解决
Improve this question的
当响应状态为200时,如何返回0?
现在我可以通过以下命令获取状态,例如200:
curl -LI http://google.com -o /dev/null -w '%{http_code}\n' -s
字符串
但我需要把这200变成0。
我如何才能做到这一点?
我尝试了以下命令,但它没有返回:
if [$(curl -LI http://google.com -o /dev/null -w '%{http_code}\n' -s) == "200"]; then echo 0
型
4条答案
按热度按时间5cnsuln71#
您也可以使用
-f
parameter:(HTTP)在服务器错误时静默失败(根本没有输出)。这主要是为了更好地使脚本等更好地处理失败的尝试。
于是:
字符串
如果调用成功,将返回状态0。
d5vmydt92#
看起来你需要一些空格和一个
fi
。这对我来说很有效:字符串
krcsximq3#
最简单的方法是检查curl的退出代码。
字符串
输出量:
型
和
型
输出量:
型
请注意,
--fail
在这里是必需的(details in this answer)。另外请注意,正如Bob在注解中指出的(见脚注),在非200
成功代码的情况下,这仍然会返回0
。如果你出于某种原因不想使用它,这里有另一种方法:
型
你的代码不工作的原因是因为你必须在括号内添加空格。
(复制自我在超级用户(Stack Exchange网站)上的回答,OP在那里交叉发布了by now deleted问题)
i86rm4rw4#
另一种方法是使用布尔运算符
&&
:字符串
只有当第一部分为True时,才会执行第二个命令。