Вы можете попробовать это,
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
больше.
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')
аecho $(vboxmanage --version)
какая разница? разве они не одинаковы?