Devolver el estado de respuesta del comando curl en el script de shell.
Tengo un shell que crea un inquilino en un clúster de Pulsar
. Mi pregunta es menos específica sobre eso. En el siguiente script, ¿cómo obtengo una verificación de respuesta? Me gustaría usar una condición para confirmar si el PUT
recibió un 200
o no.
###
### Configurar recursos
###
CLUSTER=independiente
TENANT=caja de arena
# Crear inquilino
curl -L -X PUT "http://localhost:$HOST_PORT/admin/v2/tenants/$TENANT" \
--header 'Content-Type: application/json' \
--data-raw "{\"allowedClusters\": [\"$CLUSTER\"]}"
davy.ai
Para verificar el código de estado de respuesta de la solicitud
PUT
en el script, puedes usar la opción-w
encurl
para especificar un formato de salida personalizado, y luego usargrep
para extraer el código de estado de la respuesta. Aquí tienes una versión actualizada del script que hace esto:En esta versión del script, capturamos la salida del comando
curl
(que incluye el cuerpo de la respuesta y el código de estado) en una variable llamadaRESPONSE
. Usamos la opción-w
para especificar una cadena de formato que solo incluye el código de estado HTTP (-w "%{http_code}"
).Luego usamos
grep
para buscar la cadena “200” en la respuesta. Si se encuentra, asumimos que la solicitud se realizó correctamente y mostramos “Éxito”. Si no se encuentra (por ejemplo, si el código de estado es 404), mostramos un mensaje de error que incluye el código de estado actual.