我正在编写一个 Bash 脚本来存储虚拟盒,但无法成功。
我的脚本是:
#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change
我试过
virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version
一切似乎都打开了虚拟盒而不是输出。
virtualbox --help
给出了版本号,但是输出太长,无法存储在变量中并稍后使用。
答案1
打印或查看当前虚拟盒您应该使用以下命令:
vboxmanage --version
然后将打印当前版本,如下所示;
参考8.2. 命令概述请访问 VirtualBox 官方网站了解更多信息。
要使用脚本打印版本,请参见下文:
#!/bin/bash
echo $(vboxmanage --version)
希望能帮助到你。
答案2
你可以尝试一下,
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 管理器 4.3.6
步骤 -3
| awk '{print $NF}'
其余内容再次传递给awk
。在此阶段,awk
将整行视为由空格分隔的几个字段的组合,并仅打印上述表达式的最后一个字段。因此您只会获得版本。man awk
有关更多信息,请参阅。
答案3
你可以使用 dpkg 和 grep 管道来查看安装的软件包的版本
dpkg -l | grep virtualbox | awk '{print $3}'
答案4
avi@avi-IdeaPad-Z500:~$ virtualbox --help Oracle VM VirtualBox 管理器 4.3.6
运行以下命令,
virtualbox --help | awk '/Oracle/{ print $5 }'
输出:
4.3.6
awk '/Oracle/{ print $5 }'
搜索由单词组成的行Oracle
。如果是,则命令选择该行的第五列并将其重定向到标准输出。如果任何行中都没有这样的词,则不显示任何内容。