检查卷曲响应是否为空

时间:2020-07-15 07:53:24

标签: linux bash shell sh

我有一个简单的shell脚本,我在其中执行cURL并基于响应(如果为空或不想记录标志)。我尝试了空检查,但仍然可以进行其他操作。

脚本:test.sh

    RESP=`curl  -m 600 -X POST -H "Accept: application/json" ......`  #curl response
    #if [ -z "$RESP" ] && echo "Empty"
    if [ ${#RESP[@]} -eq 0 ];
    then
     echo "APIName=Test1Api,  TicketRaised=N"
    else
     echo "RESPONSE is NOT NULL"
     echo -e "APIName=Test1Api, HTTP_STATUS=$HTTP_STATUS, totalTime=$TIME_TAKEN, Response=$RESP, TicketRaised=Y"
    fi
    
    

输出>(即使Response(即“ RESP”)为空,它也会进入其他部分)

RESPONSE is NOT NULL
APIName=Test1Api, HTTP_STATUS=[], totalTime=545, Response=[], TicketRaised=Y

1 个答案:

答案 0 :(得分:0)

我从您的答案中得出一个空答案,即空的JASON字符串[]

所以尝试:

RESP=`curl  -m 600 -X POST -H "Accept: application/json" ......`  #curl response
if [ $RESP = "[]" ]
then
  echo "APIName=Test1Api,  TicketRaised=N"
else
  echo "RESPONSE is NOT NULL"
  echo -e "APIName=Test1Api, HTTP_STATUS=$HTTP_STATUS, totalTime=$TIME_TAKEN, Response=$RESP, TicketRaised=Y"
fi

请确保[]之后没有换行符。否则,您将不得不修改代码。