假设我在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并使用它?
答案 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