Re: Having trouble passing a shell variable to a query from psql command line

From: Ron Johnson <ronljohnsonjr(at)gmail(dot)com>
To: Pgsql-admin <pgsql-admin(at)lists(dot)postgresql(dot)org>
Subject: Re: Having trouble passing a shell variable to a query from psql command line
Date: 2025-08-29 18:27:49
Message-ID: CANzqJaBC5rx0fNbmx1bom9ZE3v1UgQxH3uXWOFHCfUb=rkqcEQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On Fri, Aug 29, 2025 at 1:52 PM Murthy Nunna <mnunna(at)fnal(dot)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!

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Murthy Nunna 2025-08-29 18:31:52 RE: Having trouble passing a shell variable to a query from psql command line
Previous Message Tom Lane 2025-08-29 18:16:21 Re: Having trouble passing a shell variable to a query from psql command line