将psql变量发送到shell中

时间:2015-04-02 08:49:06

标签: postgresql psql

我想将psql中的变量发送到shell中,在那里做一些棘手的事情并再次使用psql中的结果。参见:

\set ENVIR `echo :HOST | cut -f2 -d-`
\echo :ENVIR

然而,psql变量似乎没有像我期望的那样在反引号中进行插值:shell的echo :HOST仅提供:HOST。求助。

1 个答案:

答案 0 :(得分:1)

您需要使用\setenv将psql变量导出到shell:

\set HOST 'the-host-name'
\setenv HOST :HOST
\set ENVIR `echo $HOST | cut -f2 -d-`
\echo :ENVIR

产生

host

修改

当然,你的例子可以用postgres字符串函数完成,不需要shelling。