VMs können nicht abgemeldet werden

VMs können nicht abgemeldet werden

Ich habe den folgenden Befehl, um den Namen der aktuell im Hostsystem verfügbaren virtuellen Maschinen zu extrahieren.

vmslist=$(vboxmanage list vms | awk '{print $1}')

Ich übergebe diese Liste an eine For-Schleife, um die in der Liste enthaltenen VMs wie folgt abzumelden:

for vm in $vmslist
do
    echo $vm
    vboxmanage controlvm $vm poweroff
    vboxmanage unregistervm $vm --delete
done

Das Problem ist, dass der Befehl vboxmanage die Namen bemängelt. Dort steht beispielsweise:

VBoxManage: error: Could not find a registered machine named '"SC-1"'

Ich verstehe nicht, woher diese einfachen Anführungszeichen um den Namen der VM kommen! Wie kann ich das lösen?

Antwort1

Entfernen Sie einfach die Anführungszeichen

vmslist=$(vboxmanage list vms | awk '{gsub(/"/, ""); print $1}')

Und wenn die Namen Leerzeichen enthalten könnten, wäre es wichtig, die Erweiterung in Anführungszeichen zu setzen.

for vm in $vmslist
do
    echo "$vm"
    vboxmanage controlvm "$vm" poweroff
    vboxmanage unregistervm "$vm" --delete
done

verwandte Informationen