Solución:
Prueba este:
#!/bin/bash
psql -U postgres -d database_name -c "SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'"
O usando su
:
#!/bin/bash
su -c "psql -d database_name -c "SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'"" postgres
Y también sudo
:
#!/bin/bash
sudo -u postgres -H -- psql -d database_name -c "SELECT c_defaults FROM user_info WHERE c_uid = 'testuser'"
Puede conectarse a psql como se muestra a continuación y escribir sus consultas sql como lo hace en una función de postgres normal dentro del bloque. Allí, se pueden usar variables bash. Sin embargo, el script debe ser estrictamente sql, incluso para los comentarios que necesita usar, en lugar de #:
#!/bin/bash
psql postgresql://<user>:<password>@<host>/<db> << EOF
<your sql queries go here>
EOF
si planea ejecutarlo desde un archivo sql separado. aquí hay un buen ejemplo (tomado de una gran página para aprender a golpear con postgresql http://www.manniwood.com/postgresql_and_bash_stuff/index.html
#!/bin/bash
set -e
set -u
if [ $# != 2 ]; then
echo "please enter a db host and a table suffix"
exit 1
fi
export DBHOST=$1
export TSUFF=$2
psql
-X
-U user
-h $DBHOST
-f /path/to/sql/file.sql
--echo-all
--set AUTOCOMMIT=off
--set ON_ERROR_STOP=on
--set TSUFF=$TSUFF
--set QTSTUFF='$TSUFF'
mydatabase
psql_exit_status = $?
if [ $psql_exit_status != 0 ]; then
echo "psql failed while trying to run this sql script" 1>&2
exit $psql_exit_status
fi
echo "sql script successful"
exit 0
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)