2015-02-11 2 views
9

Пусть я создал последовательность в PostgreSQL:Как вернуть значение из psql в bash и использовать его?

CREATE SEQUENCE my_seq; 

Я хранить строку ниже в SQL файла get_seq.sql

SELECT last_value FROM my_seq; 

$SUDO psql -q -d database_bame -f get_seq.sql 

Как получить Int номер, возвращенное SELECT, в Баш и использования Это?

ответ

15

Вы можете захватить результат команды с использованием VAR = $ (команда) Синтаксис:

VALUE=$(psql -qtAX -d database_name -f get_seq.sql) 
echo $VALUE 

Необходимые опции PSQL означают:

-t только кортеж

-A выход не выровненный

-q тихий

-X Не запускайте файл .psqlrc

+0

@ Эрик-Лещинский, почему вы добавить '-X' вариант? Я думаю, этот вариант не нужен в этом случае. –

+0

Файл '~/.psqlrc' выполняет операции при входе в базу данных, что дамп-шум для вывода, который попадает в вашу переменную' VALUE', этот шум был удален с помощью опции -X. –

+0

ОК, это был случай, но в целом ли он действителен? Файл psqlrc также может выполнять операции, необходимые для выполнения запроса –

1

Try:

LAST_VALUE=`echo "SELECT last_value FROM my_seq;" | psql -qAt -d database_bame` 
Смежные вопросы