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"
我认为
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"
我认为应该可以完成这项工作,但我还没有测试过,所以要小心