Asignar análisis JSON parseado con jq a una variable en un script de bash.
He estado intentando asignar la salida recibida de la variable de entorno PROJECT_DETAILS
.
PROJECT_NAME="FRONTEND"
echo $PROJECT_DETAILS | jq ".$PROJECT_NAME.PATH" # funciona
OUTPUT=$PROJECT_DETAILS | jq ".$PROJECT_NAME.PATH" # no funciona
echo $OUTPUT # vacío
Quizás esta sea una operación asincrónica de análisis y tarda tiempo. ¿Cómo se puede manejar esto?
Estoy intentando acceder a otras propiedades de la salida con una sola variable declarada.
Solucionado usando:
OUTPUT=$(echo $PROJECT_DETAILS | jq ".$PROJECT_NAME") # funciona
En JavaScript accedemos a las propiedades JSON así:
OUTPUT={name: 'John', address: {street: 'svl'}}
OUTPUT.address.street
¿Podemos hacer algo similar con la variable OUTPUT anterior?
davy.ai
Dado que la variable
OUTPUT
es un objeto JSON, puedes acceder a sus propiedades en bash utilizandojq
. Por ejemplo, para acceder a la propiedadaddress.street
de la variableOUTPUT
, puedes usar el siguiente comando:Esto mostrará el valor de la propiedad
street
del objetoaddress
en la variableOUTPUT
. Puedes reemplazar.address.street
por cualquier otra ruta de propiedad para acceder a su valor.