Как мне проверить версию virtualbox из CLI

Я пишу сценарий Bash для хранения номера версии Virtualbox, но не может добиться успеха.

Мой сценарий таков:

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

Я пытался

virtualbox --versionvirtualbox -vvirtualbox -Vvirtualbox --Version

все, кажется, открывает virtualbox вместо вывода.
virtualbox --help выдает номер версии, но выходные данные слишком длинные, чтобы их можно было сохранить в переменной и использовать позже.

Для печати или просмотра текущего VirtualBox версия, вы должны использовать приведенную ниже команду:

vboxmanage --version

который затем напечатает текущую версию, как показано ниже;

enter image description here

Ссылаться 8.2. Обзор команд дополнительную информацию можно найти на официальном сайте VirtualBox.


Чтобы распечатать версию с помощью скрипта, см. Ниже:

#!/bin/bashecho $(vboxmanage --version)

Надеюсь, это поможет.

Вы можете попробовать это,

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 Manager 4.3.6
(C) 2005-2013 Корпорация Oracle Corporation
Все права защищены.
...

Шаг -2

| head -n 1

| называется трубой. Он имеет отличное применение в командной строке. Он передает все выражение следующей команде head. head -n 1 печатает только первую строку. видеть man head для большего. На этом этапе вывод только

Oracle VM VirtualBox Manager 4.3.6

Шаг -3

| awk '{print $NF}'

Снова оставшиеся вещи передаются в awk. На данном этапе awk видит всю строку как комбинации нескольких полей, разделенных пробелом, и выводит только последнее поле приведенного выше выражения. Таким образом, вы получаете только версию. Видеть man awk для большего.

вы могли бы узнать версию пакета, установленного с помощью dpkg и grep с помощью piping

dpkg -l | grep virtualbox | awk '{print $3}'
avi@avi-IdeaPad-Z500:~$ virtualbox --helpOracle VM VirtualBox Manager 4.3.6

Итак, выполните приведенную ниже команду,

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

Выход:

4.3.6

awk '/Oracle/{ print $5 }'

Выполняет поиск строки, состоящей из слова Oracle .Если да, то команда выбирает пятый столбец в этой строке и перенаправляет его на стандартный вывод.Если такое слово не присутствовало ни в одной строке, то оно ничего не отображает.