Как написать скрипт оболочки, используя условие из базы данных

Как написать скрипт оболочки, используя условие из базы данных

Подумайте, это то состояние, которое мне нужно проверить.

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

Теперь его следует вывести из базы данных (PostgreSQL) и использовать IF THEN ELSE LOOPв Unix

Что-то вроде

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

решение1

Далее предполагается, что пользователь unix, запускающий psql, имеет учетную запись postgresql, которая может получить доступ к 'nm.table1'. Если нет, вам также необходимо предоставить данные аутентификации для psql.

Лучший способ сделать это — иметь~/.pgpassфайл, содержащий данные аутентификации.

В любом случае, как только будет решена аутентификация, получение данных из psqlзапросов станет таким же простым, как и получение данных из любой другой команды, стандартнозамена командыделает свою работу.

Для psqlмы хотим использовать опцию -tили --tuples-onlyдля отключения печати верхних и нижних колонтитулов, а также опцию -Aили --no-alignдля невыровненного режима печати (т. е. не печатать дополнительные пробелы для заполнения вывода). И, конечно, опцию -cили --commandдля указания psql, что следующим аргументом будет команда SQL для выполнения.

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

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

Связанный контент