Как проверить версию Virtualbox из CLI

Из-за динамического характера загрузчиков класса, это не возможно. Загрузчики класса не требуются, чтобы говорить VM, какие классы это может обеспечить, вместо этого им просто вручают запросы на классы, и должны возвратить класс или выдать исключение.

Однако, если Вы пишете свои собственные загрузчики класса или исследуете пути к классам и это - банки, возможно найти эту информацию. Это будет через операции файловой системы хотя, и не отражение. Могли бы даже быть библиотеки, которые могут помочь Вам сделать это.

, Если существуют классы, которые сгенерированы, или поставил удаленно, Вы не сможете обнаружить те классы.

нормальный метод должен вместо этого где-нибудь зарегистрировать классы, к которым Вы нуждаетесь в доступе в файле или ссылаетесь на них в другом классе. Или просто используйте конвенцию когда дело доходит до именования.

Приложение: Библиотека Отражений позволит Вам искать классы в текущем пути к классу. Это может использоваться для получения всех классов в пакете:

 Reflections reflections = new Reflections("my.project.prefix");

 Set> allClasses = 
     reflections.getSubTypesOf(Object.class);

59
задан 11.05.2020, 10:52

4 ответа

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. Если да, то команда выбирает пятый столбец в этой строке и перенаправляет его на стандартный вывод. Если такого слова не было в каких-либо строках, то ничего не отображается.

0
ответ дан 11.05.2020, 10:52

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

dpkg -l | grep virtualbox | awk '{print $3}'
0
ответ дан 11.05.2020, 10:53
  • 1
    Что делает каждую из этих переданных по каналу команд, делают, быть подробным. – user3364600 11.05.2020, 10:53

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

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.

0
ответ дан 11.05.2020, 10:53
  • 1
    Было бы большим, если Вы могли разбивка команда и объяснять, что делает каждая часть. – prgrm 11.05.2020, 10:54
  • 2
    @Jobin посмотрите мое редактирование. – Guillaume Smet 11.05.2020, 10:54

Чтобы распечатать или просмотреть текущую версию VirtualBox , используйте следующую команду:

vboxmanage --version

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

enter image description here

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


Чтобы напечатать версию с использованием сценария, см. ниже:

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

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

0
ответ дан 11.05.2020, 10:54
  • 1
    @DreadPirateShawn Вы корректны теперь, это является ненужным. В то время vboxmanage раньше шел с некоторой другой информацией именно поэтому, я предложил это. Вы можете видеть редактирование , OP принял мое предложение. Почему был бы я делать вещи комплексом:) – Brian 11.05.2020, 10:54
  • 2
    @souravc - В Вашем комментарии здесь, Вы используете --version, который выводы только одна строка и одно поле; так использование head и awk для обрезки избыточно, и да они производят тот же результат. В Вашем ответе ниже, Вы используете --help вместо --version, в этом случае head и awk, обрезка действительно необходима..., но Вы все еще становитесь менее - точная информация, как версия, найденная через --help, только #.#.# по сравнению с --version, который приводит к #.#.#r# (версия с информацией о пересмотре). – Pranav MS 11.05.2020, 10:55
  • 3
    @souravc - А-а-а... забавный, как контекст делает вещи более ясными.:-P Так... превосходная подсказка.:-) – Ryan Gunner 11.05.2020, 10:55
  • 4
    Начиная с VBox 5.0, vbox-img --version может печатная версия также. – Patryk Krawiec 11.05.2020, 10:55
  • 5
    echo $(vboxmanage --version | head -n 1 | awk '{print $NF}') и echo $(vboxmanage --version), каково различие? разве они не то же? – Pranav MS 11.05.2020, 10:55

Теги

Похожие вопросы