Não é possível cancelar o registro do vms

Não é possível cancelar o registro do vms

Tenho o seguinte comando para extrair o nome das máquinas virtuais atualmente disponíveis no sistema host.

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

Eu passo esta lista para um loop for para cancelar o registro de vms que estão na lista como segue:

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

O problema é que o comando vboxmanage reclama dos nomes. Por exemplo diz:

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

Não entendo de onde vêm essas aspas simples em torno do nome vm! Como posso resolver isso?

Responder1

Então apenas retire as aspas duplas

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

E se os nomes pudessem conter espaços em branco seria importante citar a expansão.

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

informação relacionada