मैं CLI से वर्चुअलबॉक्स संस्करण की जाँच कैसे करूँ


65

मैं वर्चुअलबॉक्स के वर्जन नंबर को स्टोर करने के लिए बैश स्क्रिप्ट लिख रहा हूं , लेकिन सफल नहीं हो सकता।

मेरी स्क्रिप्ट है:

#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change

मैंने कोशिश की

virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version

सभी आउटपुट के बजाय वर्चुअलबॉक्स को खोलने लगता है।
virtualbox --helpसंस्करण संख्या देता है, लेकिन आउटपुट चर में संग्रहीत करने और बाद में उपयोग करने के लिए बहुत लंबा है।

जवाबों:


107

वर्तमान वर्चुअलबॉक्स संस्करण को प्रिंट या देखने के लिए आपको कमांड के नीचे प्रयोग करना चाहिए:

vboxmanage --version

जो बाद में नीचे देखा के रूप में वर्तमान संस्करण मुद्रित करेगा;

यहाँ छवि विवरण दर्ज करें

8.2.२ का संदर्भ लें अधिक के लिए आधिकारिक वर्चुअलबॉक्स साइट पर कमांड अवलोकन


स्क्रिप्ट का उपयोग करके संस्करण को प्रिंट करने के लिए, नीचे देखें:

#!/bin/bash
echo $(vboxmanage --version)

आशा है ये मदद करेगा।


1
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')और echo $(vboxmanage --version)क्या अंतर है? क्या वे समान नहीं हैं?
souravc

@souravc - यहाँ आपकी टिप्पणी में, आप उपयोग करते हैं --version, जो केवल एक पंक्ति और एक फ़ील्ड को आउटपुट करता है; इसलिए उपयोग करना headऔर awkट्रिम करना बेमानी है, और हां वे उसी परिणाम का उत्पादन करते हैं। नीचे दिए गए आपके उत्तर में, आप --helpइसके बजाय उपयोग करते हैं --version, जिसमें केस headऔर awkट्रिमिंग वास्तव में आवश्यक है ... लेकिन आपको अभी भी कम-सटीक जानकारी मिलती है, क्योंकि जिस संस्करण के माध्यम से पाया जाता है, --helpवह केवल # # है। # बनाम --versionजो पैदावार # #। # है। r # (संशोधन जानकारी वाला संस्करण)।
DreadPirateShawn

@DreadPirateShawn आप सही हैं अब यह अनावश्यक है। उस समय vboxmanageकुछ अन्य जानकारी के साथ आते थे, यही कारण है कि मैंने इसका प्रस्ताव रखा। आप संपादन देख सकते हैं , ओपी ने मेरा सुझाव स्वीकार कर लिया। मैं चीजों को जटिल क्यों
बनाऊंगा

@souravc - आह ... मजाकिया संदर्भ कैसे चीजों को स्पष्ट करता है। :-P So ... उत्कृष्ट टिप। :-)
DreadPirateShawn 20

VBox 5.0 के बाद से, vbox-img --versionसंस्करण भी प्रिंट कर सकते हैं।
kenorb

7

आप यह कोशिश कर सकते हैं,

virtualbox --help | head -n 1 | awk '{print $NF}'

या

$ echo $(virtualbox --help | head -n 1 | awk '{print $NF}')
4.3.6

यह काम किस प्रकार करता है

चरण 1

virtualbox --help

आपको कई विकल्प आदि कहते हुए एक लंबा आउटपुट देता है, लेकिन इसकी पहली पंक्तियाँ जैसे हैं,

Oracle VM VirtualBox प्रबंधक 4.3.6
(C) 2005-2013 Oracle Corporation
सभी अधिकार सुरक्षित।
...

चरण 2

| head -n 1

|पाइप कहलाता है। यह कमांड लाइन में महान अनुप्रयोग है। यह पूरी अभिव्यक्ति को अगले कमांड पर भेजता है headhead -n 1केवल पहली पंक्ति प्रिंट करता है। man headअधिक के लिए देखें । इस स्तर पर आउटपुट केवल है

Oracle VM VirtualBox प्रबंधक 4.3.6

चरण 3

| awk '{print $NF}'

शेष चीजों को फिर से पारित किया जाता है awk। इस स्तर awkपर पूरी लाइन को अंतरिक्ष द्वारा अलग किए गए कुछ क्षेत्रों के संयोजन के रूप में देखता है और उपरोक्त अभिव्यक्ति के केवल अंतिम क्षेत्र को प्रिंट करता है। तो आपको वर्जन ही मिलेगा। man awkअधिक के लिए देखें ।


बहुत अच्छा होगा यदि आप कमांड को तोड़ सकते हैं और समझा सकते हैं कि प्रत्येक भाग क्या करता है।
जॉब

@ जोबिन plz मेरा संपादन देखें।
souravc

2

आप पाइपिंग के साथ dpkg और grep के साथ संस्थापित पैकेज का संस्करण जान सकते हैं

dpkg -l | grep virtualbox | awk '{print $3}'

इनमें से प्रत्येक पाइप्ड कमांड क्या करता है, कृपया क्रिया करें।
जॉब

1
avi @ avi-IdeaPad-Z500: ~ $ virtualbox --help
Oracle VM VirtualBox प्रबंधक 4.3.6

तो नीचे कमांड चलाएं,

virtualbox --help | awk '/Oracle/{ print $5 }'

आउटपुट:

4.3.6

awk '/Oracle/{ print $5 }'

उस लाइन की खोज करता है, जिसमें यह शब्द होता है Oracle। यदि हां, तो कमांड उस लाइन पर पांचवें कॉलम को उठाता है और इसे मानक आउटपुट पर रीडायरेक्ट करता है। यदि ऐसा कोई शब्द किसी भी लाइन पर मौजूद नहीं था, तो यह कुछ भी प्रदर्शित नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.