Debian ベースの場合。
aptitude show postgresql | grep State
しかし、 --version
のようなフラグを付けて起動してみることができると思います 、単にいくつかの情報を出力して終了します。
更新 「サービス postgres ステータス」を使用します。試してみてください:
service postgres status
if [ "$?" -gt "0" ]; then
echo "Not installed".
else
echo "Intalled"
fi
簡単に書くことができます:
psql --version
出力は次のように表示されます:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
これを行う簡単な方法はありません。できることは、パッケージ マネージャー (rpm、dpkg) で確認するか、必要なファイルの可能性のある場所を調べることだけです。または、可能性の高いポート (5432) に接続して、PostgreSQL プロトコルの応答が得られるかどうかを確認することもできます。しかし、これはどれも非常に堅牢になることはありません。要件を確認することをお勧めします。
which
を試してみるのはどうですか コマンド?
which psql
を実行した場合 Postgres がインストールされていないため、出力がないように見えます。別のコマンドを受け入れる準備ができた端末プロンプトを取得するだけです:
> which psql
>
ただし、Postgres がインストールされている場合は、Postgres のインストール場所へのパスを含む応答が返されます:
> which psql
/opt/boxen/homebrew/bin/psql
man which
を見る あなたを助けることができるオプションもあるようです:
-s No output, just return 0 if any of the executables are found, or
1 if none are found.
つまり、使用しているスクリプト言語が端末コマンドを実行できる限り、which -s psql
を送信できるようです。 戻り値を使用して、Postgres がインストールされているかどうかを判断します。そこから、好きなように結果を印刷できます。
私のマシンには postgres がインストールされているので、以下を実行します
> which -s psql
> echo $?
0
これは、コマンドが 0 を返したことを示しています。これは、Postgres 実行可能ファイルが私のマシンで見つかったことを示しています。
echo $?
の使用に関する情報は次のとおりです。