用于列出虚拟机工作目录的脚本

时间:2015-08-09 16:23:08

标签: linux bash shell awk

我正在尝试获取正在运行的vms的工作目录。我可以在多个bash命令中执行此操作,但我试图在单行中执行此操作。

这是我到目前为止所得到的。

VBoxManage list runningvms | grep vip-quickstart | VBoxManage showvminfo $(awk -F '' '{print $1}')

但是我收到了这个错误

  

awk:字段分隔符FS为空

如何将grep的结果传递给VBoxManage命令?

这是

的结果

VBoxManage列表runningvms

"vip-quickstart_default_1431403025707_81359" {7b9a9c04-2bd9-4fd3-92c8-50293fbbca23}

"Some other running vms" {7b9a9c04-2bd9-4fd3-92c8-50293fbbca23}

在我通过grep管道之后,我得到了这个

"vip-quickstart_default_1431403025707_81359" {7b9a9c04-2bd9-4fd3-92c8-50293fbbca23}

而且我认为我可以通过awk -F ' ' '{print $1}'获取VMId,我会得到"vip-quickstart_default_1431403025707_81359"我可以将其再次传输到

VboxManage showvminfo

如何在一个命令行中执行此操作?

2 个答案:

答案 0 :(得分:1)

首先,你在第一个命令中给出了''空白。将空白作为字段分隔符是一个问题。如果space是字段分隔符,那么即使你没有提到-F'',awk也能正常工作。例如

VBoxManage list runningvms | grep vip-quickstart | VBoxManage showvminfo $(awk  '{print $1}')

现在你想在awk的输出上运行命令VBoxManage showvminfo然后使用下面的代码: -

VBoxManage list runningvms | grep vip-quickstart | awk  '{print $1}' | xargs VBoxManage showvminfo 

OR

VBoxManage list runningvms | awk '/vip-quickstart/{print $1}' | xargs VBoxManage showvminfo

答案 1 :(得分:0)

看来你有一个带字段分隔符的类型,你在-F参数后的两个引号之后没有空格。

尝试类似:

VBoxManage list runningvms | awk '/vip-quickstart/{print $0}'