I think you need to add parens around the command to populate DBLIST and remove the quotes in the GRANT command.
In bash this works for me:
DBLIST=$(/usr/lib/postgresql/11/bin/psql -p 5432 -U postgres -d postgres -q -t -c "SELECT datname from pg_database where datname in ('tempdb')")
/usr/lib/postgresql/11/bin/psql -p 5432 -U postgres -d $DBLIST -c "GRANT CONNECT ON DATABASE $DBLIST TO dbuser1"
/usr/lib/postgresql/11/bin/psql -p 5432 -U postgres -d $DBLIST -c "GRANT CONNECT ON DATABASE $DBLIST TO dbuser1"
On Mon, Sep 9, 2019 at 5:58 AM nikhil raj <nikhilraj474@xxxxxxxxx> wrote:
Hi Karsten,yup you are right can you help in i tried by removing quotion and also adding extra having same issue.On Mon, Sep 9, 2019 at 5:25 PM Karsten Hilbert <Karsten.Hilbert@xxxxxxx> wrote:On Mon, Sep 09, 2019 at 05:16:20PM +0530, nikhil raj wrote:
>
> The DB is already there and getting the error of the DB does not exist
> where I execute it via shell.
> DBLIST=/usr/lib/postgresql/11/bin/psql -p 5432 -U postgres -d postgres -q
> -t -c "SELECT datname from pg_database where datname in
> ('CDF_100_1313')"/usr/lib/postgresql/11/bin/psql
> -p 5432 -U postgres -d $DBLIST -c "GRANT CONNECT ON DATABASE "$DBLIST" TO
> cpupdate"
>
> ERROR: database "cdf_100_1313" does not exist
Likely a quoting issue.
Karsten Hilbert
--
GPG 40BE 5B0E C98E 1713 AFA6 5BC0 3BEA AC80 7D4F C89B