Pokud je založen na debianu.
aptitude show postgresql | grep State
Ale myslím, že to můžete zkusit spustit s nějakým příznakem jako --version
, který jednoduše vytiskne nějaké informace a skončí.
Aktualizováno pomocí "service postgres status". Zkuste:
service postgres status
if [ "$?" -gt "0" ]; then
echo "Not installed".
else
echo "Intalled"
fi
Můžeme jednoduše napsat:
psql --version
výstup zobrazí jako:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
Neexistuje žádný přímý způsob, jak to udělat. Jediné, co můžete udělat, je zkontrolovat u správce balíčků (rpm, dpkg) nebo prozkoumat některá pravděpodobná umístění požadovaných souborů. Nebo se můžete pokusit připojit k pravděpodobnému portu (5432) a zjistit, zda dostanete odpověď protokolu PostgreSQL. Nic z toho ale nebude příliš robustní. Možná budete chtít zkontrolovat své požadavky.
Co takhle zkusit which
příkaz?
Pokud byste spustili which psql
a Postgres není nainstalován, zdá se, že není žádný výstup. Stačí připravit terminálový řádek na přijetí dalšího příkazu:
> which psql
>
Pokud je však Postgres nainstalován, dostanete odpověď s cestou k umístění instalace Postgres:
> which psql
/opt/boxen/homebrew/bin/psql
Podívejte se na man which
také se zdá, že existuje možnost, která by vám mohla pomoci:
-s No output, just return 0 if any of the executables are found, or
1 if none are found.
Zdá se tedy, že pokud jakýkoli skriptovací jazyk, který používáte, může provést příkaz terminálu, můžete odeslat which -s psql
a použijte návratovou hodnotu k určení, zda je nainstalován Postgres. Odtud si můžete výsledek vytisknout, jak chcete.
Na svém počítači mám nainstalovaný postgres, takže spouštím následující
> which -s psql
> echo $?
0
což mi říká, že příkaz vrátil 0, což znamená, že na mém počítači byl nalezen spustitelný soubor Postgres.
Zde jsou informace o použití echo $?