检查 curl 响应是否为空
Check if curl response is empty
我有一个简单的 shell 脚本,我在其中执行 cURL,并根据响应是否为空或不想记录标志。我尝试了 null 检查,但它仍然转到其他部分。
脚本: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
我从你的回答中推断出你所说的空答案是空的 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
确保[]
后没有换行符。否则,您将不得不修改代码。
我有一个简单的 shell 脚本,我在其中执行 cURL,并根据响应是否为空或不想记录标志。我尝试了 null 检查,但它仍然转到其他部分。
脚本: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
我从你的回答中推断出你所说的空答案是空的 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
确保[]
后没有换行符。否则,您将不得不修改代码。