我有以下脚本:
#!/bin/bash
while true
do "curl http://192.168.1.2/api/queue | grep -q $3"
case ${PIPESTATUS[*]} in
"0 1")
echo "Queue is no longer in the queue." > /config/log.txt
break;;
"0 0")
echo "Queue is still in the queue. Trying again in 5 minutes." > /config/log.txt
sleep 5;;
"7 1")
echo "Server is unreachable. Trying again in 5 minutes." > /config/log.txt
sleep 5m;;
esac
done
case $2 in
testvalue1)
curl -i --data "hashes=$3&category=testcat" http://localhost:8082/command/setCategory
;;
*)
echo "Deleting $4." > /config/log.txt
curl -i --data "hashes=$3" http://localhost:8082/command/deletePerm
;;
esac
脚本有两个部分。第一部分查询服务器上的队列,如果队列为空,则移动到第二部分。第二部分将检查某个值,如果存在,则会发出curl命令,或者如果它是其他任何值,它将发出另一个命令。
问题是脚本的两个部分都可以作为单独的脚本正常工作,但不能一起工作。一旦我将它们组合在一起,第一部分就会被完全跳过,或者看起来如此。它应该等待队列从第一部分为空,然后进入第二部分,但由于某种原因,它只是直接进入第二部分。我将这些输出添加到文件中,它们永远不会被创建。关于发生了什么的任何想法?