
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