es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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\"]}"
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para verificar el código de estado de respuesta de la solicitud PUT en el script, puedes usar la opción -w en curl para especificar un formato de salida personalizado, y luego usar grep para extraer el código de estado de la respuesta. Aquí tienes una versión actualizada del script que hace esto:

    ### 
    ### Configurar los recursos
    ###
    
    CLUSTER=standalone
    TENANT=sandbox
    
    # Crear el inquilino y verificar la respuesta
    RESPONSE=$(curl -L -X PUT "http://localhost:$HOST_PORT/admin/v2/tenants/$TENANT" \
        --header 'Content-Type: application/json' \
        --data-raw "{\"allowedClusters\": [\"$CLUSTER\"]}" \
        -w "%{http_code}")
    
    if echo "$RESPONSE" | grep -q "200"; then
      echo "Éxito"
    else
      echo "Fallo con código de estado $RESPONSE"
    fi
    

    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 llamada RESPONSE. 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.

Comments are closed.