Dies ist die Bedingung, die ich überprüfen muss
select count(*) from nm.table1 where column1 =true;
Jetzt sollte es aus der Datenbank (PostgreSQL) kommen und IF THEN ELSE LOOP
im Unix verwendet werden
Etwas wie
if [ $count > 1]
then
echo " Successful"
else
exit
fi
Antwort1
Im Folgenden wird davon ausgegangen, dass der Unix-Benutzer, der psql ausführt, über ein PostgreSQL-Konto verfügt, das auf „nm.table1“ zugreifen kann. Wenn nicht, müssen Sie auch Authentifizierungsdetails für psql angeben.
Der beste Weg, dies zu tun, ist ein~/.pgpassDatei mit den Authentifizierungsdetails.
Sobald die Authentifizierung geklärt ist, psql
ist das Abrufen von Daten aus Abfragen genauso einfach wie das Abrufen von Daten aus jedem anderen Befehl, StandardBefehlsersetzungmacht den Job.
Für möchten wir die Option oder psql
verwenden, um das Drucken von Kopf- und Fußzeilen zu deaktivieren, und die Option oder für den nicht ausgerichteten Druckmodus (d. h. keine zusätzlichen Leerzeichen drucken, um die Ausgabe aufzufüllen). Und natürlich die Option oder , um anzugeben , dass das nächste Argument ein auszuführender SQL-Befehl sein wird.-t
--tuples-only
-A
--no-align
-c
--command
psql
count=$(psql -tAc 'select count(*) from nm.table1 where column1=true;')
if [ "$count" -gt "1" ] ; then
echo " Successful"
else
exit
fi