Come posso controllare la versione di virtualbox dalla CLI


65

Sto scrivendo uno script Bash per memorizzare il numero di versione di Virtualbox , ma non riesco.

Il mio script è:

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

Provai

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

tutto sembra aprire la virtualbox anziché l'output.
virtualbox --helpfornisce il numero di versione, ma l'output è troppo lungo per essere archiviato in una variabile e utilizzato in seguito.

Risposte:


107

Per stampare o visualizzare l'attuale versione di VirtualBox è necessario utilizzare il comando seguente:

vboxmanage --version

che stamperà quindi la versione corrente come mostrato di seguito;

inserisci qui la descrizione dell'immagine

Fare riferimento a 8.2. Panoramica dei comandi sul sito ufficiale di VirtualBox per ulteriori informazioni.


Per stampare la versione utilizzando lo script, vedere di seguito:

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

Spero che sia d'aiuto.


1
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')e echo $(vboxmanage --version)qual è la differenza? non sono uguali?
souravc,

@souravc - Nel tuo commento qui, usi --version, che genera solo una riga e un campo; quindi usare heade awktagliare è ridondante, e sì producono lo stesso risultato. Nella tua risposta qui sotto, si utilizza --helpinvece che --version, in questo caso heade awkrifilatura è davvero necessario ... ma è ancora ottenere informazioni meno precise, come la versione che si trova via --helpè solo #. #. # Vs --versionda cui si ricava #. #. # r # (versione con informazioni di revisione).
DreadPirateShawn

@DreadPirateShawn hai ragione ora non è necessario. A quel tempo vboxmanageveniva con qualche altra informazione ed è per questo che l'ho proposto. Puoi vedere la modifica , OP ha accettato il mio suggerimento. Perché dovrei rendere le cose complesse :)
souravc,

@souravc - Ahhh ... divertente come il contesto renda le cose più chiare. :-P Quindi ... ottimo consiglio. :-)
DreadPirateShawn

Da VBox 5.0, è anche vbox-img --versionpossibile stampare la versione.
Kenorb,

7

Puoi provare questo,

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

o

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

Come funziona

Passo 1

virtualbox --help

ti dà un output lungo dicendo molte opzioni ecc. Ma le sue prime righe sono come,

Oracle VM VirtualBox Manager 4.3.6
(C) 2005-2013 Oracle Corporation
Tutti i diritti riservati.
...

Passo 2

| head -n 1

|si chiama pipe. Ha una grande applicazione nella riga di comando. Passa l'intera espressione al comando successivo head. head -n 1stampa solo la prima riga. vedere man headdi più. In questa fase l'output è solo

Oracle VM VirtualBox Manager 4.3.6

Passaggio -3

| awk '{print $NF}'

Ancora una volta le cose rimanenti vengono passate a awk. In questa fase awkvede l'intera linea come combinazioni di pochi campi separati dallo spazio e stampa solo l'ultimo campo dell'espressione sopra. Quindi ottieni solo la versione. Vedi man awkdi più.


Sarebbe bello se potessi interrompere il comando e spiegare cosa fa ogni parte.
Jobin

@Jobin plz guarda la mia modifica.
souravc,

2

potresti conoscere la versione del pacchetto installato con dpkg e grep con piping

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

Cosa fa ciascuno di questi comandi inoltrati, per favore sii prolisso.
Jobin

1
avi @ avi-IdeaPad-Z500: ~ $ virtualbox --help
Oracle VM VirtualBox Manager 4.3.6

Quindi esegui il comando seguente,

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

Produzione:

4.3.6

awk '/Oracle/{ print $5 }'

Cerca la riga che è composta dalla parola Oracle. Se sì, il comando prende la quinta colonna su quella riga e la reindirizza allo standard output. Se tale parola non era presente su nessuna riga, non visualizza nulla.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.