No se pueden cancelar el registro de máquinas virtuales

No se pueden cancelar el registro de máquinas virtuales

Tengo el siguiente comando para extraer el nombre de las máquinas virtuales disponibles actualmente en el sistema host.

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

Paso esta lista a un bucle for para cancelar el registro de máquinas virtuales que están en la lista de la siguiente manera:

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

El problema es que el comando vboxmanage se queja de los nombres. Por ejemplo dice:

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

¡No entiendo de dónde vienen esas comillas simples alrededor del nombre de vm! ¿Como puedo resolver esto?

Respuesta1

Así que simplemente quita las comillas dobles.

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

Y si los nombres pudieran contener espacios en blanco, sería importante citar la expansión.

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

información relacionada