Buenos días, estoy intentando recuperar datos mediante scripts en bash sobre
una consulta SQL.

La consulta por ejemplo tiene 2 campos y 4 filas y estoy intentando
recuperar estos datos para almacenarlo en variables y luego hacer ciertas
cosas dependiendo de los datos almacenados.

Estoy mirando la ayuda de psql y no logro poner en el comando psql los
parámetros necesarios para poder separar correctamente campos, y registros y
luego poder meterlo en variables.


Alguno de ustedes ha tenido esta problemática y sabe como resolverlo.

Adjunto el ejemplo en bash que estoy intentado resolver

#!/bin/bash
RES=`psql -d BBDD -U usuario -h servidor  -A -t -c "SELECT l_registro,
c_usuario from ts_usuarios order by 1 desc;"` # Ejecuto la consulta y la
guardo en RES
OLDIFS="$IFS" # Respaldo el valor de IFS, no olvidar las comillas dobles
IFS=$'/n' # Seteo el valor de IFS que me sirve
echo $RES
for row in $RES ; # Itero por los registros porque for separará por \n
do
    if [ ${#row} -gt 0 ]; then # Chequeo si tengo un registro
        INNERIFS="$IFS" # Hago un respaldo temporal de IFS, no olvidar las
comillas dobles
        IFS="$OLDIFS" # Ahora separaré los campos
     id=$(echo $row | cut -d "|" -f 1)
nombre=$(echo $row | cut -d "|" -f 2)
        echo "El id es $id y el nombre es $nombre"
        IFS="$INNERIFS" # Vuelvo a hacer que IFS separe por \n para la
próxima iteración
    fi
done
IFS="$OLDIFS" # Dejo IFS en su estado original.


Gracias

Responder a