我正在编写一个bash脚本,其中运行了psql查询,如下所示:
VAR="$(psql -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table where query = 'query'")"
问题在于
$VAR
中的内容如下:
value ----------------- result (1 row)
我只需要$VAR
中的result
,以便在脚本的其余部分中使用。
我正在编写一个bash脚本,其中运行了psql查询,如下所示:
VAR="$(psql -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table where query = 'query'")"
$VAR
中的内容如下:
value ----------------- result (1 row)
我只需要$VAR
中的result
,以便在脚本的其余部分中使用。
VAR=`psql -t -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table where query = 'query'"`
或者
VAR=$(psql -t -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table where query = 'query'")
< p > -t
仅返回元组(数据)。
编辑
我已经能够像这里建议的那样使用子shell:https://dev59.com/jmEi5IYBdhLWcg3whcri#21193276
psql -t -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table where query = '`echo $VAR`'"
VAR="$(psql -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT value FROM table1 where query = 'query'")"
psql -h prov-db-cl -p 5446 -d prov -U prov -c "SELECT * FROM table2 where query2 = '$VAR'"
第二个查询无法正常工作,我确信VAR
值存在于table2
中,但它仍然没有找到任何结果。猜测一些类型问题,因为$VAR
是整数,但在DB逻辑中被用作字符串。 - X3MBoy