我正在努力解决linux bash中的问题 我想要一个脚本来执行命令
curl -s --head http://myurl/ | head -n 1
如果命令的结果包含200,则执行另一个命令。 否则它会回应一些东西。 我现在拥有的:
CURLCHECK=curl -s --head http://myurl | head -n 1
if [[ $($CURLCHECK) =~ "200" ]]
then
echo "good"
else
echo "bad"
fi
脚本打印:
HTTP/1.1 200 OK
bad
我尝试了很多方法,但似乎没有一种方法可行。 有人能帮助我吗?
答案 0 :(得分:1)
我会做这样的事情:
if curl -s --head http://myurl | head -n 1 | grep "200" >/dev/null 2>&1; then
echo good
else
echo bad
fi
答案 1 :(得分:0)
您可以将此curl命令与-w "%{http_code}"
一起使用,以获取http状态代码:
[[ $(curl -s -w "%{http_code}" -A "Chrome" -L "http://myurl/" -o /dev/null) == 200 ]] &&
echo "good" || echo "bad"
答案 2 :(得分:0)
您需要实际捕获curl命令的输出:
CURLCHECK=$(curl -s --head http://myurl | head -n 1)
我很惊讶你没有找到" -s:命令未找到"错误
答案 3 :(得分:0)
使用wget
if wget -O /dev/null your_url 2>&1 | grep -F HTTP >/dev/null 2>&1 ;then echo good;else echo bad; fi