Shell 脚本/VirtualBox:我如何设置将通过 vboxmanage cli 保存以防止删除的虚拟机名称列表? [重复]

问题描述 投票:0回答:1

Shell 脚本/VirtualBox:我如何设置将通过 vboxmanage cli 保存并免于删除的虚拟机名称列表?

@BeatOne 编码的第一个解决方案
警告! 此 ShellScript 排除所有虚拟机,只保留一个名为“SaveThisOne”的虚拟机。

    #!/bin/bash

    # list all VMs
    vms=$(vboxmanage list vms)

    # Check every vm
    while read -r line; do
        # Get VM name
        vm_name=$(echo "$line" | awk -F'"' '{print $2}')
        echo $vm_name

        # check name and delete
        if [ "$vm_name" != "SaveThisOne" ]; then
            # delete if name not like 
            vboxmanage controlvm "$vm_name" poweroff
            vboxmanage unregistervm "$vm_name" --delete
        fi
    done <<< "$vms"
string bash shell virtualbox
1个回答
0
投票

我认为

vmboxmanage list vms
的输出看起来像这样:

"SaveThisOne" {asdgfdasg}
"DeleteThis" {asdfasdfasdg}
"AndThis" {gasdfas}
"AndThisToo" {asdfas}

这是一个例子:

#!/bin/bash

# list all VMs
vms=$(vboxmanage list vms)

# Check every vm
while read -r line; do
    # Get VM name
    vm_name=$(echo "$line" | awk -F'"' '{print $2}')
    echo $vm_name

    # check name and delete
    if [ "$vm_name" != "SaveThisOne" ]; then
        # delete if name not like 
        vboxmanage unregistervm "$vm_name" --delete
    fi
done <<< "$vms"

我认为应该可以完成这项工作,但我还没有测试过,所以要小心

© www.soinside.com 2019 - 2024. All rights reserved.