Memperluas jawaban Jeff Schaller , lewati pipeline sama sekali dan hanya meminta representasi konstanta internal:
$ php -r 'echo PHP_VERSION;'
7.1.15
Anda dapat memperluas pola ini untuk mendapatkan lebih banyak, atau kurang, informasi:
$ php -r 'echo PHP_MAJOR_VERSION;'
7
Lihat daftar PHP dari konstanta yang telah ditentukan sebelumnya untuk semua yang tersedia.
Manfaat utama: tidak bergantung pada format output yang ditentukan php -v
. Mengingat itu tentang kinerja yang sama dengan solusi pipa, maka tampaknya pilihan yang lebih kuat.
Jika tujuan Anda adalah untuk menguji versi, maka Anda juga dapat menggunakan pola ini. Misalnya, kode ini akan keluar 0
jika PHP> = 7, dan 1
sebaliknya:
php -r 'exit((int)version_compare(PHP_VERSION, "7.0.0", "<"));'
Untuk referensi, berikut adalah pengaturan waktu untuk berbagai kasus pengujian, yang dipesan terlebih dahulu tercepat:
$ 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
... | head -1
atau mungkin ada cara yang lebih baik