GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu zkontrolovat, zda je PostgreSQL nainstalován nebo ne prostřednictvím skriptu Linux?

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 $?


Linux
  1. Jak zkontrolovat, která verze Postgresu je spuštěná/nainstalovaná

  2. Linux – Jak zjistit, kterou verzi Javy v nainstalované složce Java?

  3. Jak zkontrolovat dodavatele nainstalovaných RPM balíčků v Linuxu

  1. Jak mohu napsat linuxový bash skript, který mi řekne, které počítače jsou v mé LAN zapnuté?

  2. Jak mohu spustit skript v Perlu jako systémový démon v linuxu?

  3. Jak mohu v Linuxu zjistit, který proces poslal mému procesu signál

  1. Příkaz Linux pro kontrolu, zda je spuštěn skript shellu nebo ne

  2. jak zkontrolovat nainstalovanou verzi nltk, scikit learn?

  3. Jak mohu automaticky reagovat na výzvy ve skriptu Linux Bash?