我正在尝试编写一个尽可能简单的bash脚本,以便从“父”虚拟机(称为peer00
)克隆虚拟机。为了克隆这些机器,我首先需要一个快照。
vboxmanage snapshot peer00 delete "MySnapShot"
vboxmanage snapshot peer00 take "MySnapShot"
# for loop to create several machines
现在如果我在没有MySnapShot
快照时运行此脚本,我会收到以下错误(显然):
VBoxManage:错误:找不到名为“MySnapShot”的快照 VBoxManage:错误:详细信息:代码VBOX_E_OBJECT_NOT_FOUND(0x80bb0001),组件SessionMachine,接口IMachine,被调用者nsISupports VBoxManage:错误:上下文:“FindSnapshot(Bstr(a-> argv [2])。raw(),pSnapshot.asOutParam())”在文件VBoxManageSnapshot.cpp的第514行
另一方面,如果我在快照已经存在的情况下运行它,我会得到另一个输出:
0%... 进度状态:NS_ERROR_FAILURE VBoxManage:错误:快照操作失败 VBoxManage:错误:硬盘'/ home / pietro / VirtualBox VMs / peer00 / Snapshots / {0183ad41-71b6-41bf-af74-38db828b2d82} .vdi'有多个子硬盘(7) VBoxManage:错误:详细信息:代码NS_ERROR_FAILURE(0x80004005),组件SessionMachine,接口IMachine VBoxManage:错误:上下文:文件VBoxManageSnapshot.cpp的第532行的“RTEXITCODE handleSnapshot(HandlerArg *)”
如何编写一种“if语句”,在尝试删除快照之前检查快照是否已存在?而且为什么我得到第二个错误?我真的不明白