無法取消註冊虛擬機

無法取消註冊虛擬機

我有以下命令來提取主機系統中目前可用的虛擬機器的名稱。

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

相關內容