Cómo escribir un Shell Script usando la condición de una base de datos

Cómo escribir un Shell Script usando la condición de una base de datos

Considere que esta es la condición que necesito verificar.

select count(*) from nm.table1 where column1 =true; 

Ahora debería salir de la base de datos (PostgreSQL) y usarlo IF THEN ELSE LOOPen Unix.

Algo como

if [ $count > 1]
then
  echo " Successful"
else
  exit
fi

Respuesta1

Lo siguiente supone que el usuario de Unix que ejecuta psql tiene una cuenta de postgresql que es capaz de acceder a 'nm.table1'. De lo contrario, también deberá proporcionar detalles de autenticación a psql.

La mejor manera de hacerlo es tener un~/.pgpassarchivo que contiene los detalles de autenticación.

De todos modos, una vez resuelta la autenticación, obtener datos de psqlconsultas es tan fácil como obtener datos de cualquier otro comando, estándarsustitución de comandohace el trabajo.

Para psql, queremos usar la opción -to --tuples-onlypara deshabilitar la impresión de encabezados y pies de página, y la opción -Ao --no-alignpara el modo de impresión no alineado (es decir, no imprimir espacios adicionales para rellenar la salida). Y, por supuesto, la opción -co --commandpara indicar psqlque el siguiente argumento será un comando SQL a ejecutar.

count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')

if [ "$count" -gt "1" ] ; then
  echo " Successful"
else
  exit
fi 

información relacionada