シェルコマンドを使用してPHPのバージョン番号を取得する方法は?

シェルコマンドを使用してPHPのバージョン番号を取得する方法は?

CentOSにPHPバージョンをインストールしたいです。

出力php -v

PHP 7.1.16 (cli) (built: Mar 28 2018 13:19:29) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

私は以下を試しました:

php -v | grep PHP | awk '{print $2}'

しかし、私が得た結果は次のとおりです。

7.1.16
(c)

7.1.16をどのように入手できますか?

ベストアンサー1

延長するジェフ・シャラーの答え、パイプを完全にスキップし、内部定数表現のみが必要です。

$ php -r 'echo PHP_VERSION;'
7.1.15

このパターンを拡張して、より多くまたは少ない情報を得ることができます。

$ php -r 'echo PHP_MAJOR_VERSION;'
7

よりPHPの事前定義定数リストすべて可能です。

主な利点:に依存しませんphp -v。パイプラインソリューションとほぼ同じ性能を発揮するので、より安定したオプションのようです。


あなたの目標があればテストバージョンでは、このパターンを使用することもできます。たとえば、0このコードはPHP> = 7の場合は終了し、1それ以外の場合は次のようになります。

php -r 'exit((int)version_compare(PHP_VERSION, "7.0.0", "<"));'

参考までに、さまざまなテストケースのタイミングは、最も早いものからソートされます。

$ time for (( i=0; i<1000; i++ )); do php -v | awk '/^PHP [0-9]/ { print $2; }' >/dev/null; done

real    0m13.368s
user    0m8.064s
sys     0m4.036s

$ time for (( i=0; i<1000; i++ )); do php -r 'echo PHP_VERSION;' >/dev/null; done

real    0m13.624s
user    0m8.408s
sys     0m3.836s

$ time for (( i=0; i<1000; i++ )); do php -v | head -1 | cut -f2 -d' ' >/dev/null; done

real    0m13.942s
user    0m8.180s
sys     0m4.160s

おすすめ記事