#! /bin/sh exception() { echo -n -e '\e[0m' flock -u 200 &>/dev/null exit } trap exception EXIT SIGINT SIGTERM SIGQUIT column="$1" row="$2" label="$3" prehook="$4" cmd="$5" posthook="$6" while : do ( flock -e 200 echo -n -e "\e[$row;${column}H\e[7m $label \e[0m" flock -u 200 if [ -n "$prehook" ] then $prehook fi $cmd &>/dev/null ecode=$? flock -e 200 echo -n -e "\e[$row;${column}H" if [ $ecode -eq 0 ] then echo -n -e "\e[42;32;1m" else echo -n -e "\e[41;31;1m" fi echo -n -e " $label \e[0m" flock -u 200 if [ -n "$posthook" ] then $posthook fi ) 200>/tmp/lock done