我想将psql中的变量发送到shell中,在那里做一些棘手的事情并再次使用psql中的结果。参见:
\set ENVIR `echo :HOST | cut -f2 -d-`
\echo :ENVIR
然而,psql变量似乎没有像我期望的那样在反引号中进行插值:shell的echo :HOST
仅提供:HOST
。求助。
答案 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。