Re: Having trouble passing a shell variable to a query from psql command line - Mailing list pgsql-admin

From Ron Johnson
Subject Re: Having trouble passing a shell variable to a query from psql command line
Date
Msg-id CANzqJaBC5rx0fNbmx1bom9ZE3v1UgQxH3uXWOFHCfUb=rkqcEQ@mail.gmail.com
Whole thread Raw
In response to Having trouble passing a shell variable to a query from psql command line  (Murthy Nunna <mnunna@fnal.gov>)
Responses Re: Having trouble passing a shell variable to a query from psql command line
List pgsql-admin
On Fri, Aug 29, 2025 at 1:52 PM Murthy Nunna <mnunna@fnal.gov> wrote:

Hello,

 

Below works:

 

psql -d mydb -t -A -c "SELECT relkind FROM pg_class WHERE relname = 'pg_trigger' ;"

r

 

I am getting syntax error from following:

 

echo $SHELL_VAR

pg_trigger

 

psql -d mydb -t -A -c "SELECT relkind FROM pg_class WHERE relname = :'SHELL_VAR' ;" -v SHELL_VAR="$SHELL_VAR"

ERROR:  syntax error at or near ":"

LINE 1: SELECT relkind FROM pg_class WHERE relname = :'SHELL_VAR' ;

                                                     ^

Is psql script necessary to pass shell variable?


Yeah.  From the cli KISS and do regular bash variable string expansion.
 
psql -d mydb -tAc "SELECT relkind FROM pg_class WHERE relname = ${SHELL_VAR} ;"

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!

pgsql-admin by date:

Previous
From: Tom Lane
Date:
Subject: Re: Having trouble passing a shell variable to a query from psql command line
Next
From: Murthy Nunna
Date:
Subject: RE: Having trouble passing a shell variable to a query from psql command line