#!/bin/bash set -eu -o pipefail running() { virsh domstate "$1" | grep -q -Fx running } shutoff() { virsh domstate "$1" | grep -q -Fx "shut off" } for vm in "$@" do if running "$vm" then virsh shutdown "$vm" > /dev/null while ! shutoff "$vm" do sleep 1 done fi virsh undefine "$vm" > /dev/null done