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

1

Eu 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 essa lista para um loop for para cancelar o registro de vms que estão na lista como follwos:

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"'

Eu não entendo de onde vêm as citações simples em torno do nome de vm! Como posso resolver isso?

    
por coffeMug 18.10.2013 / 11:48

1 resposta

1

Então, tire as aspas duplas

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

E se os nomes puderem 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
    
por 31.01.2014 / 18:29