不妨尝试使用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可执行文件在我的电脑上找到了。
which
命令对我唯一的选项是 -a
(打印每个参数的所有匹配路径名),如果我使用 -s
则会导致出现非法选项。 - Dennis-a
标志,甚至可以不使用任何标志:if which foo >/dev/null; then echo exists; fi
。另一个问题是这只会搜索你的 PATH。 - Dennis我们可以简单地写:
psql --version
输出结果如下:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
psql
,而不是服务器是否已安装(它报告的是 psql 版本,而不是潜在安装的服务器版本)。 - user330315aptitude show postgresql | grep State
我猜你可以尝试使用一些标志来启动它,比如--version
,它会简单地打印一些信息并退出。
更新:使用"service postgres status"。尝试:
service postgres status
if [ "$?" -gt "0" ]; then
echo "Not installed".
else
echo "Intalled"
fi
service postgres status
,但如何检查结果? - Nirmal- thInk beYondservice
命令。在 Ubuntu 或 Debian 中,我会检查 /etc/init.d/postgres status
或类似的命令。 - Adriano Varoli Piazza没有一种简单的方法可以完成它,因为PostgreSQL可能以许多不同的方式安装和设置:
/opt
或/usr/local
中从源代码编译安装,并手动启动或通过init脚本启动rpm
/deb
软件包中安装并通过init脚本启动rpm
/deb
软件包中安装并通过init脚本启动PATH
或默认端口上您不能依赖于psql
存在于PATH
中。您不能指望系统上只有一个psql
(可能以不同的方式安装多个版本)。您不能基于端口进行操作,因为不能保证它在5432端口上,或者不存在多个版本。
提示用户并询问他们。
这并没有一种简单的方法。你所能做的就是通过软件包管理器(rpm,dpkg)进行检查或探测一些可能包含你想要的文件的位置。或者你可以尝试连接到一个可能的端口(5432),看看是否会得到PostgreSQL协议响应。但这些方法都不是非常可靠的。你可能需要重新审视你的需求。
> which psql
返回了正值,则只需键入psql -V
(大写“V”),您将获得类似于以下内容的返回:psql (PostgreSQL) 9.4.8
。$$> find / -name 'postgres'
。如果您是普通用户,则需要sudo权限才能在所有目录中运行它。我会从根目录运行它,以查找元素所在的完整路径。这将返回任何包含“postgres”的文件或目录。您也可以通过类似的方式查找pg_hba.conf
或postgresql.conf
文件。多年来,我一直使用以下命令:
ps aux | grep postgres
在某个时候,我发现了这篇教程,其中展示了locate命令的使用。看起来这个命令更适合这种情况。
aptitude show postgresql | grep Version
对我有用。
进入PostgreSQL数据库的bin目录,例如/opt/postgresql/bin
,并运行以下命令:
[...bin]# ./psql --version
psql (PostgreSQL) 9.0.4
请看这里。
psql --version
输出如下所示:
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
- Chandan Sharma