Saltar al contenido

¿Cómo establecer la variable en el comando curl en bash?

Te traemos la solución a esta impedimento, o por lo menos eso creemos. Si continuas con inquietudes puedes escribirlo en el apartado de preguntas, que para nosotros será un placer ayudarte

Solución:

Para acceder a las variables, debe colocar un signo de dólar delante del nombre: $name

Sin embargo, las variables no se expanden dentro de cadenas encerradas entre ‘comillas simples’. Sin embargo, debe tenerlos envueltos entre “comillas dobles” para evitar la división de palabras del valor expandido, si puede contener espacios.

Entonces, básicamente hay dos formas, o bien ponemos todo el argumento entre comillas dobles para hacer que la variable se pueda expandir, pero luego tenemos que escapar de los caracteres de comillas dobles dentro, para que terminen en el parámetro real (línea de comando abreviada):

curl -d ""query":"$name", "turnOff":true" ...

Alternativamente, podemos concatenar string literales encerrados en diferentes tipos de comillas escribiéndolos inmediatamente uno al lado del otro:

curl -d '"query":"'"$name"'", "turnOff":true' ...

Dado que el valor de los rizos -d el parámetro está entre comillas simples significa que no habrá expansión de parámetros, simplemente agregar la variable no funcionaría. Puede evitar esto finalizando el string literal, agregando la variable y luego iniciando el string literal de nuevo:

curl -d '"query":"'"$name"'", "turnOff":true' -H "Content-Type: application/json" -X POST http://localhost:8080/explorer

Las comillas dobles adicionales alrededor de la variable se utilizan para evitar la expansión de parámetros de shell no deseada.

La respuesta de @ByteCommander es buena, asumiendo sabes que el valor de name es un JSON correctamente escapado string literal. Si no puede (o no quiere) hacer esa suposición, use una herramienta como jq para generar el JSON para usted.

curl -d "$(jq -n --arg n "$name" 'query: $n, turnOff: true')" 
     -H "Content-Type: application/json" -X POST http://localhost:8080/explorer

Te invitamos a añadir valor a nuestra información añadiendo tu experiencia en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *