Невозможно отменить регистрацию vms

Невозможно отменить регистрацию vms

У меня есть следующая команда для извлечения имен виртуальных машин, доступных в данный момент в хост-системе.

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

Я передаю этот список в цикл for, чтобы отменить регистрацию виртуальных машин, которые находятся в списке, следующим образом:

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

Проблема в том, что команда vboxmanage жалуется на имена. Например, она говорит:

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

Я не понимаю, откуда взялись эти одинарные кавычки вокруг имени vm! Как мне решить эту проблему?

решение1

Так что просто уберите двойные кавычки.

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

И если имена могут содержать пробелы, то важно указать расширение.

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

Связанный контент