Si está basado en Debian.
aptitude show postgresql | grep State
Pero supongo que puedes intentar lanzarlo con alguna bandera como --version
, que simplemente imprime alguna información y sale.
Actualizado usando "estado de postgres del servicio". Prueba:
service postgres status
if [ "$?" -gt "0" ]; then
echo "Not installed".
else
echo "Intalled"
fi
Simplemente podemos escribir:
psql --version
espectáculo de salida como:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
No hay una manera directa de hacer esto. Todo lo que puede hacer es verificar con el administrador de paquetes (rpm, dpkg) o sondear algunas ubicaciones probables para los archivos que desea. O puede intentar conectarse a un puerto probable (5432) y ver si obtiene una respuesta del protocolo PostgreSQL. Pero nada de esto va a ser muy robusto. Es posible que desee revisar sus requisitos.
¿Qué tal probar el which
? comando?
Si tuviera que ejecutar which psql
y Postgres no está instalado, parece que no hay salida. Simplemente obtiene el indicador de terminal listo para aceptar otro comando:
> which psql
>
Pero si Postgres está instalado, obtendrá una respuesta con la ruta a la ubicación de la instalación de Postgres:
> which psql
/opt/boxen/homebrew/bin/psql
Mirando man which
también parece haber una opción que podría ayudarte:
-s No output, just return 0 if any of the executables are found, or
1 if none are found.
Por lo tanto, parece que, siempre que el lenguaje de secuencias de comandos que esté utilizando pueda ejecutar un comando de terminal, podría enviar which -s psql
y use el valor devuelto para determinar si Postgres está instalado. Desde allí puedes imprimir ese resultado como quieras.
Tengo postgres instalado en mi máquina, así que ejecuto lo siguiente
> which -s psql
> echo $?
0
lo que me dice que el comando devolvió 0, lo que indica que se encontró el ejecutable de Postgres en mi máquina.
Aquí está la información sobre el uso de echo $?