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
答え2
パッケージマネージャ(RPMやyumなど)を介してPHPをインストールした場合は、そこからバージョンをクエリできます。
rpm -q --queryformat="%{VERSION}" php
あるいは、PHPに尋ねることもできます。バージョンを直接教えてください。:
php -r 'echo phpversion();'
答え3
私のシステムでは:
$> php -v | grep ^PHP | cut -d' ' -f2
7.0.32-0ubuntu0.16.04.1
grep PHP
一致によってすべて発生したPHP文字列です。
^PHP
「行の先頭でのみ「PHP」文字列と一致します」を意味します。
明らかに、これは出力形式がphp -v
バージョン/ビルド間で一貫している場合に機能します。
ちなみに、全体の出力は次のようになります。
PHP 7.0.32-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.32-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
答え4
これを使い始めたので、解決策awk
は次のとおりですawk
。
$ php -v | awk '/^PHP/{print $2}'
7.2.10