virsh destroy &> /dev/null todavía muestra una salida en blanco.
Así que tengo un problema molesto. Tengo un script que cambia algunas configuraciones en un archivo de texto dado. Para cambiar ese archivo específico, primero debo destruir la máquina virtual invitada en mi KVM. El problema es que cada vez que se detiene, hay un espacio en blanco en la salida del script, como se puede ver:
¡vfp-8vr encontrado!
Comprobando si vfp-8vr se ha detenido ................................. [OK]
Comprobando si ha cambiado el nodo de vfp-8vr ............................ [OK]
Comprobando si vfp-8vr se ha iniciado ................................. [OK]
¡vfp-9vr encontrado!
Comprobando si vfp-9vr se ha detenido ................................. [OK]
Comprobando si ha cambiado el nodo de vfp-9vr ............................ [OK]
Comprobando si vfp-9vr se ha iniciado ................................. [OK]
¡vfp-10vr encontrado!
Comprobando si vfp-10vr se ha detenido ................................. [OK]
Comprobando si ha cambiado el nodo de vfp-10vr ............................ [OK]
Comprobando si vfp-10vr se ha iniciado ................................. [OK]
He incluido /dev/null
en mi script ya que oculta la salida, y en teoría funciona, pero todavía aparece un espacio en blanco a pesar de eso…
por i in "${arr[@]}"
do
if [[ -n "$i" ]]
then
echo "$i encontrado!"
virsh destroy $i &> /dev/null
echo -e "Comprobando si \e[32m$i\e[0m se ha detenido ................................. [OK]"
virsh numatune $i $opt_node0
echo -e "Comprobando si \e[32m$i\e[0m ha cambiado de nodo ............................ [OK]"
virsh start $i &> /dev/null
echo -e "Comprobando si \e[32m$i\e[0m se ha iniciado ................................. [OK]"
fi
done
¿Alguien tiene alguna idea de cómo puedo ejecutar virsh destroy
en segundo plano sin mostrar ese molesto espacio en mi salida?
Descargo de responsabilidad: Ya he utilizado [Comando] > /dev/null 2>&1 &
también, ¡y sigue pasando lo mismo!
davy.ai
Una solución para ejecutar el comando
virsh destroy
en segundo plano sin mostrar un espacio en blanco en la salida podría ser redirigir la salida del comando a/dev/null
y agregar el símbolo de ampersand al final del comando, de esta manera:Esto ejecutará el comando en segundo plano y redirigirá la salida a
/dev/null
, lo cual debería evitar que aparezcan espacios en blanco en la salida. Además, el2>&1
asegura que tanto la salida estándar como el error estándar se redirijan a/dev/null
.Si esta solución no funciona, otro enfoque posible podría ser intentar usar el comando
tee
para escribir la salida del script en un archivo y también redirigirla a/dev/null
. Esto podría ayudar a aislar la fuente del espacio en blanco y proporcionar más información para la resolución de problemas.En este ejemplo, la salida de
virsh destroy
se redirige tanto a/dev/null
como adestroy.log
. La opción-a
se utiliza contee
para agregar la salida al archivo de registro en lugar de sobrescribirlo cada vez. Nuevamente, el2>&1
asegura que tanto la salida estándar como el error estándar se redirijan a/dev/null
.