Jeff Schaller의 답변을 확장 하고 파이프 라인을 모두 건너 뛰고 내부 상수 표현을 요청하십시오.
$ 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
... | head -1
또는 더 나은 방법이있을 수 있습니다