Virtualbox sürümünü CLI'den nasıl kontrol edebilirim


65

Virtualbox sürüm numarasını depolamak için bir Bash betiği yazıyorum , ancak başarılı olamıyorum.

Komut Dosyam:

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

denedim

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

hepsi çıktı yerine sanal kutuyu açıyor gibi görünüyor.
virtualbox --helpsürüm numarasını verir, ancak çıktı değişkende saklamak ve daha sonra kullanmak için çok uzun.

Yanıtlar:


107

Geçerli VirtualBox sürümünü yazdırmak veya görüntülemek için aşağıdaki komutu kullanmanız gerekir:

vboxmanage --version

bu, geçerli sürümü aşağıda görüldüğü gibi yazdıracak;

görüntü tanımını buraya girin

8.2'ye bakınız . Daha fazla bilgi için resmi VirtualBox sitesinde komuta genel bakış .


Komut dosyasını kullanarak sürümü yazdırmak için aşağıya bakın:

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

Umarım yardımcı olur.


1
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')ve echo $(vboxmanage --version)fark nedir? onlar aynı değil mi?
souravc

@souravc - Buradaki yorumunuzda, --versionyalnızca bir satır ve bir alan veren; bu yüzden headve awktrim'i kullanmak gereksizdir ve evet aynı sonucu verir. Aşağıdaki cevabınızda, --helpyerine kullanın --version, bu durumda headve awkkırpma gerçekten gerekli ... ancak, üzerinden geçen sürüm --helpyalnızca #. #. # Vs --version#. #. r # (revizyon bilgisine sahip versiyon).
DreadPirateShawn

@DreadPirateShawn Artık haklısın artık gereksiz. O zamanlar vboxmanagebaşka bir bilgi ile gelirdi, bu yüzden bunu önerdim. Şunları yapabilirsiniz düzenleyebilir bkz OP benim önerinizi kabul etti. Neden işleri karmaşık hale
getireyim

@ souravc - Ahhh ... komik, bağlam nasıl işler daha açık hale getirir. :-P Yani ... mükemmel bir ipucu. :-)
DreadPirateShawn

VBox 5.0’dan bu yana vbox-img --versionsürümü de yazdırabilirsiniz.
kenorb

7

Bunu deneyebilirsin

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

veya

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

Nasıl çalışır

Aşama 1

virtualbox --help

size birçok seçenek söyleyerek uzun bir çıktı verir. Fakat ilk satırları

Oracle VM VirtualBox Manager 4.3.6
(C) 2005-2013 Oracle Corporation
Tüm hakları saklıdır.
...

Adım 2

| head -n 1

|boru denir. Komut satırında harika bir uygulama var. Tüm ifadeyi bir sonraki komuta geçirir head. head -n 1sadece ilk satırı basar. man headdaha fazlasını görmek için Bu aşamada çıktı yalnızca

Oracle VM VirtualBox Yöneticisi 4.3.6

Aşama 3

| awk '{print $NF}'

Yine kalan şeyler için iletilir awk. Bu aşamada awktüm çizgiyi boşlukla ayrılmış az sayıda alanın birleşimi olarak görür ve yukarıdaki ifadenin yalnızca son alanını yazdırır. Yani sadece sürümünü alırsınız. Daha man awkfazlasını gör .


Komutu parçalayıp her bir parçanın ne yaptığını açıklarsanız harika olurdu.
Jobin

@Jobin plz düzenlememi gör.
souravc

2

dpkg ile yüklenen paketin sürümünü ve borulama ile grep'i biliyor olabilirsiniz

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

Bu komutların her biri ne işe yarar, lütfen ayrıntılı bilgi verin.
Jobin

1
avi @ avi-IdeaPad-Z500: ~ $ sanal kutu - yardım
Oracle VM VirtualBox Yöneticisi 4.3.6

Aşağıdaki komutu çalıştırın.

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

Çıktı:

4.3.6

awk '/Oracle/{ print $5 }'

Kelimeden oluşan satırı arar Oracle. Evet ise, komut o satırdaki beşinci sütunu alır ve onu standart çıktıya yönlendirir. Herhangi bir satırda böyle bir sözcük yoksa, hiçbir şey göstermez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.