जेफ स्कॉलर के जवाब का विस्तार करते हुए , पाइपलाइन को पूरी तरह से छोड़ दें और बस आंतरिक निरंतर प्रतिनिधित्व के लिए पूछें:
$ 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
या इसके बेहतर तरीके हो सकते हैं