问题描述
我正在编写一个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
然后将打印当前版本,如下所示;
有关更多信息,请参阅官方VirtualBox站点上的8.2. Command overview。
要使用脚本打印版本,请参阅以下内容:
#!/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
All rights reserved.
…
第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}'