vim-cmd vmsvc/getallvms
像这样打印:
id virtual machine name
11 VirtualMachine1
15 Virtual Machine 1
6 Virtu al Machin e 1
9 Virtual Machine one
21 VirtualMa chineone
我使用以下方法获取 ID:
vm_ids=$(vim-cmd vmsvc/getallvms | awk 'NR>1 {print $1}' | egrep "[0-9]+")
接下来我想遍历它们并对每个命令执行一个命令,所以我这样做:
i=2
for id in $vm_ids
do
vm_name=$(vim-cmd vmsvc/getallvms | awk -v i=$i -F "[[:space:]]{2,}+" 'NR==i {print $2}' | egrep "$[[:alnum:]]")
echo "Doing something to ID: $id for machine: $vm_name"
$((i++))
done
当我的脚本null
到达那些空行时,它会返回一个值。
我制作这样的虚拟机名称只是为了演示可以返回名称的各种方式。由于尚未tr
安装 ESXi,我如何从输出中删除这些行,或者有更好的方法吗?