가상 머신을 등록 취소할 수 없습니다.

가상 머신을 등록 취소할 수 없습니다.

현재 호스트 시스템에서 사용할 수 있는 가상 머신의 이름을 추출하는 다음 명령이 있습니다.

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

관련 정보