Se è basato su debian.
aptitude show postgresql | grep State
Ma suppongo che tu possa semplicemente provare ad avviarlo con un flag come --version
, che stampa semplicemente alcune informazioni ed esce.
Aggiornato utilizzando "servizio postgres status". Prova:
service postgres status
if [ "$?" -gt "0" ]; then
echo "Not installed".
else
echo "Intalled"
fi
Possiamo semplicemente scrivere:
psql --version
l'output mostra come:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
Non esiste un modo semplice per farlo. Tutto quello che puoi fare è controllare con il gestore pacchetti (rpm, dpkg) o sondare alcune probabili posizioni per i file che desideri. Oppure potresti provare a connetterti a una probabile porta (5432) e vedere se ottieni una risposta del protocollo PostgreSQL. Ma niente di tutto questo sarà molto robusto. Potresti voler rivedere i tuoi requisiti.
Che ne dici di provare il which
comando?
Se dovessi eseguire which psql
e Postgres non è installato sembra non esserci output. Devi solo preparare il prompt del terminale per accettare un altro comando:
> which psql
>
Ma se Postgres è installato, riceverai una risposta con il percorso della posizione dell'installazione di Postgres:
> which psql
/opt/boxen/homebrew/bin/psql
Guardando man which
sembra esserci anche un'opzione che potrebbe aiutarti:
-s No output, just return 0 if any of the executables are found, or
1 if none are found.
Quindi sembra che fintanto che qualsiasi linguaggio di scripting che stai usando può eseguire un comando da terminale potresti inviare which -s psql
e utilizzare il valore restituito per determinare se Postgres è installato. Da lì puoi stampare quel risultato come preferisci.
Ho postgres installato sulla mia macchina, quindi eseguo quanto segue
> which -s psql
> echo $?
0
che mi dice che il comando ha restituito 0, indicando che l'eseguibile Postgres è stato trovato sulla mia macchina.
Ecco le informazioni sull'uso di echo $?