Я пишу сценарий Bash для хранения номера версии Virtualbox , но не удается.
Мой сценарий:
#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change
Я пытался
virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version
, кажется, все открывают виртуальную коробку вместо вывода.
virtualbox --help
дает номер версии, но вывод слишком длинный, чтобы хранить его в переменной и использовать позже.
Чтобы распечатать или просмотреть текущую версию VirtualBox , используйте следующую команду:
vboxmanage --version
, которая затем напечатает текущую версию, как показано ниже;
См. 8.2. Обзор команд на официальном сайте VirtualBox для получения дополнительной информации.
Чтобы напечатать версию с использованием сценария, см. ниже:
#!/bin/bash
echo $(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 с конвейером
dpkg -l | grep virtualbox | awk '{print $3}'
avi@avi-IdeaPad-Z500:~$ virtualbox --help Oracle VM VirtualBox Manager 4.3.6
Запустите приведенную ниже команду:
virtualbox --help | awk '/Oracle/{ print $5 }'
Вывод:
4.3.6
awk '/Oracle/{ print $5 }'
Поиск строки, состоящей из слова Oracle
. Если да, то команда выбирает пятый столбец в этой строке и перенаправляет его на стандартный вывод. Если такого слова не было в каких-либо строках, то ничего не отображается.