我试图弄清楚如何让我的 bash 脚本工作。我有以下命令:
curl http://192.168.1.2/api/queue | grep -q test
我需要它重复,直到管道中的第一个命令成功(意味着服务器响应)并且第二个命令失败(意味着找不到模式或队列为空)。我尝试了许多组合,但似乎无法得到它。我看着使用$PIPESTATUS
,但无法让它按我想要的方式循环运行。我已经尝试了各种变化,但无法让它发挥作用。这是我目前正在尝试的:
while [[ "${PIPESTATUS[0]}" -eq 0 && "${PIPESTATUS[1]}" -eq 1 ]]
do curl http://192.168.1.2 | grep -q regular
echo "The exit status of first command ${PIPESTATUS[0]}, and the second command ${PIPESTATUS[1]}"
sleep 5
done