如何将值从psql返回到bash并使用它?

时间:2015-02-11 10:10:48

标签: postgresql psql

假设我在postgresql中创建了一个序列:

CREATE SEQUENCE my_seq;

我将以下行存储在sql文件get_seq.sql

SELECT last_value FROM my_seq;

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

如何将SELECT返回的int编号转换为bash并使用它?

3 个答案:

答案 0 :(得分:36)

您可以使用VAR = $(命令)语法捕获命令的结果:

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

所需的psql选项意味着:

-t只有元组

-A输出未对齐

-q安静

-X不要运行.psqlrc文件

答案 1 :(得分:2)

尝试:

LAST_VALUE=`echo "SELECT last_value FROM my_seq;" | psql -qAt -d database_bame`

答案 2 :(得分:1)

您可以在Bash中使用$?变量,即运行psql,从内置变量$?中读取其返回值并采取相应措施:

#!/bin/bash

psql -q -d database_bame -f get_seq.sql  # >/dev/null we are only interested in return value
exit_value=$?                            # or you could just echo $? right after the psql
echo $exit_value                         # but storing it to $exit_value lasts longer

输出:

0