bash脚本跳过部分

时间:2016-10-05 00:04:30

标签: bash sequential

我有以下脚本:

#!/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命令,或者如果它是其他任何值,它将发出另一个命令。

问题是脚本的两个部分都可以作为单独的脚本正常工作,但不能一起工作。一旦我将它们组合在一起,第一部分就会被完全跳过,或者看起来如此。它应该等待队列从第一部分为空,然后进入第二部分,但由于某种原因,它只是直接进入第二部分。我将这些输出添加到文件中,它们永远不会被创建。关于发生了什么的任何想法?

0 个答案:

没有答案