Bash 脚本获取 php 版本

Posted

技术标签:

【中文标题】Bash 脚本获取 php 版本【英文标题】:Bash script to get php version 【发布时间】:2019-12-04 21:10:13 【问题描述】:

我想在 php.ini 路径中获取 php 的当前数值。我知道 php -v 为我提供了很多信息,但我只需要“7.2”或来自 php.ini 路径的任何当前版本。

编辑:我正在构建一个自动化脚本,如果版本发生变化,我需要能够知道我运行 apt-get install php 时安装了什么

这个脚本让我知道了我关心的那一行:

php --ini | grep Loaded | cut -d' ' -f12

结果(截至今天)是

/etc/php/7.2/cli/php.ini

假设/etc/php 不会改变(根据使用apt-get 安装php 位置的历史,这不太可能),以bash 方式回显"7.2" 的最佳方法是什么?

我对不涉及 php --ini 的其他方法持开放态度,我只需要 7.2(或任何该路径值可能变成的)。

【问题讨论】:

使用php --version有什么问题? 我只需要 php_dev=php$php_version-dev, apt-get -y install $php_dev 中的 7.2。我正在构建一个自动化脚本,如果版本发生变化,我需要能够知道运行 apt-get install php 时安装了什么 您必须小心,因为 CLI 和 Web 版本可能不同。不确定这是否会影响您的情况,但可能很重要。 【参考方案1】:

如果您使用 apt 构建自动化,那么您应该依靠 apt 和/或 dpkg 来获取相关信息。

dpkg -l 'php*' | grep ^ii

为了完成,yum/dnf/rpm:

rpm -qa 'php*'

【讨论】:

【参考方案2】:

这种方式使用CLI

php -r "echo substr(phpversion(),0,3);"

php -r "echo implode('.', array_slice(explode('.', PHP_VERSION),0,2));"

【讨论】:

【参考方案3】:

一问,我意识到我可以调整分隔符并查找第 4 项。

php --ini | grep Loaded | cut -d'/' -f4

【讨论】:

以上是关于Bash 脚本获取 php 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何从脚本本身中获取 Bash 脚本的源目录?

在 Bash 脚本中获取 Python 脚本的退出代码

如何从脚本本身中获取 Bash 脚本的源目录?

在bash脚本中获取命令的子进程

当我获取 bash 脚本时,$0 不起作用

如何在 bash 中获取 csh 脚本来设置环境 [关闭]