Bagaimana cara memeriksa versi virtualbox dari CLI

65

Saya menulis skrip Bash untuk menyimpan nomor versi Virtualbox , tetapi tidak berhasil.

Script saya adalah:

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

Saya mencoba

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

semua tampaknya membuka virtualbox alih-alih output.
virtualbox --helpmemberikan nomor versi, tetapi hasilnya terlalu panjang untuk disimpan dalam variabel dan digunakan nanti.

Braiam
sumber

Jawaban:

107

Untuk mencetak atau melihat versi VirtualBox saat ini, Anda harus menggunakan perintah di bawah ini:

vboxmanage --version

yang kemudian akan mencetak versi saat ini seperti yang terlihat di bawah ini;

masukkan deskripsi gambar di sini

Lihat 8.2. Gambaran umum perintah di situs VirtualBox resmi untuk informasi lebih lanjut.


Untuk mencetak versi menggunakan skrip, lihat di bawah:

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

Semoga ini bisa membantu.

AzkerM
sumber
1
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')dan echo $(vboxmanage --version)apa bedanya? bukankah mereka sama?
souravc
@souravc - Dalam komentar Anda di sini, Anda menggunakan --version, yang hanya menghasilkan satu baris dan satu bidang; jadi menggunakan headdan awkmemangkas adalah mubazir, dan ya mereka menghasilkan hasil yang sama. Dalam jawaban Anda di bawah ini, Anda menggunakan --helpalih-alih --version, dalam hal ini pemangkasan headdan awkmemang diperlukan ... tetapi Anda masih mendapatkan informasi yang kurang tepat, karena versi yang ditemukan via --helphanya #. #. # Vs vs --versionyang menghasilkan #. #. # r # (versi dengan info revisi).
DreadPirateShawn
@DreadPirateShawn Anda benar sekarang tidak perlu. Saat itu vboxmanagedulu datang dengan beberapa info lain itu sebabnya saya mengusulkan itu. Anda dapat melihat hasil edit , OP menerima saran saya. Mengapa saya membuat hal-hal yang kompleks :)
souravc
@souravc - Ahhh ... lucu bagaimana konteks membuat segalanya lebih jelas. :-P Jadi ... tip yang sangat baik. :-)
DreadPirateShawn
Sejak VBox 5.0, vbox-img --versionbisa mencetak versi juga.
kenorb
7

Anda dapat mencoba ini,

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

atau

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

Bagaimana itu bekerja

Langkah 1

virtualbox --help

memberi Anda output panjang mengatakan banyak pilihan dll. Tapi baris pertama seperti,

Oracle VM VirtualBox Manager 4.3.6
(C) 2005-2013 Oracle Corporation
Hak cipta dilindungi undang-undang.
...

Langkah 2

| head -n 1

|disebut pipa. Ini memiliki aplikasi hebat di baris perintah. Itu melewati seluruh ekspresi ke perintah berikutnya head. head -n 1hanya mencetak baris pertama. lihat man headlebih lanjut. Pada tahap ini hanya keluaran

Oracle VM VirtualBox Manager 4.3.6

Langkah -3

| awk '{print $NF}'

Lagi hal-hal yang tersisa diteruskan awk. Pada tahap ini awkmelihat seluruh baris sebagai kombinasi beberapa bidang yang dipisahkan oleh ruang dan hanya mencetak bidang terakhir dari ekspresi di atas. Jadi Anda mendapatkan versinya saja. Lihat man awklebih.

souravc
sumber
Akan lebih bagus jika Anda bisa menguraikan perintah dan menjelaskan apa yang dilakukan setiap bagian.
jobin
@ Jon Plz lihat edit saya.
souravc
2

Anda bisa mengetahui versi paket yang diinstal dengan dpkg dan grep dengan piping

dpkg -l | grep virtualbox | awk '{print $3}'
Mina Eid
sumber
Apa yang dilakukan masing-masing perintah pipa ini, harap verbose.
jobin
1
avi @ avi-IdeaPad-Z500: ~ $ virtualbox --help
Oracle VM VirtualBox Manager 4.3.6

Jadi jalankan perintah di bawah ini,

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

Keluaran:

4.3.6

awk '/Oracle/{ print $5 }'

Mencari baris yang terdiri dari kata Oracle. Jika ya maka perintah mengambil kolom kelima pada baris itu dan mengarahkannya ke keluaran standar.

Avinash Raj
sumber