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" On Mon, Sep 9, 2019 at 5:58 AM nikhil raj <nikhilraj...@gmail.com> 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.hilb...@gmx.net> > 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 >> >> >>