Un supervisor de acciones en bash se asegura de ejecutar una acción hasta que ésta se complete con éxito.
until como supervisor
until acción; do
echo "Acción interrumpida. Reintento en 10 segundos..."
sleep 10
done
el bucle until
ejecuta el comando acción
hasta que éste concluye con éxito. si la acción indicada acaba en un error (su exit status no es igual a 0), el bucle until
ejecuta el contenido del bucle (las líneas de código entre do
y done
) y comienza de nuevo con el comando acción
.
en este caso, las líneas de código entre do
y done
, emiten un mensaje (echo
) expresado entre comillas y esperan 10 segundos (sleep 10
) antes de continuar con la actividad del bucle until
.
ejemplo con rsync como accion
en el código de ejemplo, donde dice acción
, puede invocarse cualquier comando o código:
until rsync -avzP ~/mp3 RB:~/mp3; do
echo "Acción interrumpida. Reintento en 10 segundos..."
sleep 10
done
supervisor en ~/bin
estas líneas de código en ~/bin solicitan una acción que supervisar:
nano ~/bin/super
clear
echo "## SUPERVISOR ##"
echo "¿Qué acción desea supervisar?"
read accion
until $accion; do
echo "Acción interrumpida. Reintento en 3 segundos…"
sleep 3
done
chmod +x ~/bin/super
super
## SUPERVISOR ##
¿Qué acción desea supervisar?
ls