我想编写一个脚本,当url的状态不等于200时抛出错误。因为这个脚本必须在Jenkins上执行所以它应该使构建失败。这是我写的脚本 -
STATUS=$(curl -s -o /dev/null -w '%{http_code}' http://google.com)
if [ $STATUS -eq 200 ]; then
echo "URL is working fine"
break
else
echo"URL is not working"
cd 123
fi
上面的脚本工作正常,但我需要别的东西而不是-cd 123语法。
答案 0 :(得分:6)
但我需要别的东西而不是-cd 123语法
你可以说:
exit 42
代替。这将使脚本以非零退出代码退出,该代码应由Jenkins选取。
help exit
告诉:
exit: exit [n]
Exit the shell.
Exits the shell with a status of N. If N is omitted, the exit status
is that of the last command executed.
答案 1 :(得分:4)
最简单的解决方案是执行curl并使用-f
选项。当Web服务器返回200以外的其他内容时,它会使curl退出非零退出代码。
通过为shell设置-e
选项,您还可以让您的生活更轻松。这会导致shell在命令返回错误(=非零退出代码)时立即中止。
所以,上面的例子将简化为:
set -e
curl -sf -o /dev/null http://google.com
echo "URL is working fine"