stefankittel
Goto Top

PHP-Version mit Bash in Variable schreiben?

Hallo,

hat Jemand ein fertiges Skript um die aktuelle PHP-Version in eine Variable in Bash zu schreiben?

Die Ausgaben sind:
PHP Warning: Module 'xyz' already loaded in Unknown on line 0
PHP 5.5.9-1ubuntu4.20 (cli) (built:

oder
PHP 7.0.13-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-20

Mir reicht das 5.5 oder 7.0

Danke

Stefan

Content-ID: 328451

Url: https://administrator.de/forum/php-version-mit-bash-in-variable-schreiben-328451.html

Ausgedruckt am: 03.04.2025 um 22:04 Uhr

BassFishFox
Lösung BassFishFox 05.02.2017 um 01:08:02 Uhr
Goto Top
Hallo,

Reicht das?

php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1  

https://webigniter.wordpress.com/2011/08/10/how-to-check-your-php-versio ...

BFF
colinardo
Lösung colinardo 05.02.2017 aktualisiert um 11:12:45 Uhr
Goto Top
Servus Stefan,
php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f2
oder auch
php -v | sed -rne '1 s/PHP ([0-9]+\.[0-9]+).*/\1/p'
usw.

Grüße Uwe
StefanKittel
StefanKittel 05.02.2017 um 12:30:05 Uhr
Goto Top
Hallo,

das sieht doch schonmal prima aus.

Kann sich bitte Jemand erbarmen der mit mit grep den String kürzt?
Abschneiden ab dem 2. Punkt.

PHP Version => 5.5.9-1ubuntu4.20
5.5

PHP Version => 7.0.13-0ubuntu0.16.04.1
7.0

Das wäre total tuffig und toll.
Danke

PS: die PHP Warning muss man vorher loswerden

Viele Grüße

Stefan
colinardo
colinardo 05.02.2017 aktualisiert um 12:38:01 Uhr
Goto Top
Zitat von @StefanKittel:
Kann sich bitte Jemand erbarmen der mit mit grep den String kürzt?
?? Ist doch mit meinen Codes schon nur die Nummer also Major und Minor "5.5"

Oder wie sieht deine Ausgabe von php -v aus ?

PS: die PHP Warning muss man vorher loswerden
?? Wieso? php -v gibt doch so einen Mist erst gar nicht aus.
StefanKittel
StefanKittel 05.02.2017 um 12:37:53 Uhr
Goto Top
Hallo

php -v sieht bei mir so aus

PHP 7.0.13-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.13-0ubuntu0.16.04.1, Copyright (c) 1999-2016, by Zend Technologies

Mein aktuelles Skript sieht so aus.
phpversion=`php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1`  
phpversion=${phpversion/PHP Version => /}
phpversion=${phpversion:0:3}
Das geht aber bestimmt eleganter.

Stefan
colinardo
colinardo 05.02.2017 aktualisiert um 12:39:25 Uhr
Goto Top
Das geht aber bestimmt eleganter.
Hast du meinen Post oben überhaupt gelesen?? Dort steht es schon fix und fertig!
Dann eben nochmal ...
php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f2
StefanKittel
StefanKittel 05.02.2017 um 12:39:44 Uhr
Goto Top
Hallo,

natürlich

hier die Ausgaben

root@server42:~# php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f1 
PHP

root@server42:~# php -v | sed -rne '1 s/PHP ([0-9]+\.[0-9]+)/\1/p' 
7.0.13-0ubuntu0.16.04.1 (cli) ( NTS )
colinardo
Lösung colinardo 05.02.2017 aktualisiert um 12:40:45 Uhr
Goto Top
Am Ende muss eine 2 stehen face-wink.
StefanKittel
StefanKittel 05.02.2017 um 12:41:03 Uhr
Goto Top
ahhh...
Danke
StefanKittel
StefanKittel 05.02.2017 um 12:42:51 Uhr
Goto Top
Für alle, so sieht es dann für mich aus

phpversion=`php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f2`  
phpversion=${phpversion/./_}
echo $phpversion

Ausgabe
7_0 oder 5_5 bei mir
colinardo
colinardo 05.02.2017 aktualisiert um 12:48:35 Uhr
Goto Top
Zitat von @StefanKittel:

Für alle, so sieht es dann für mich aus

phpversion=`php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f2`  
> phpversion=${phpversion/./_}
> echo $phpversion

Ausgabe
7_0 oder 5_5 bei mir
Das Austauschen des Punktes kannst du noch abkürzen indem du noch ein tr anhängst face-smile
php -v | grep -Po 'PHP \d+\.\d+' | cut -d ' ' -f2` | tr . _
oder mit den sed subgroups
php -v | sed -rne '1 s/PHP ([0-9]+)\.([0-9]+).*/\1_\2/p'