Verifique el estado de salida del comando. Si el comando fue terminado por una señal, el código de salida será 128 + el número de señal. De la documentación en línea de GNU para bash :
Para los propósitos del shell, un comando que sale con un estado de salida cero ha tenido éxito. Un estado de salida distinto de cero indica un fallo. Este esquema aparentemente contraintuitivo se utiliza, por lo que hay una forma bien definida de indicar el éxito y una variedad de formas de indicar varios modos de falla. Cuando un comando termina en una señal fatal cuyo número es N, Bash usa el valor 128 + N como el estado de salida.
POSIX también especifica que el valor de un comando que terminó con una señal es mayor que 128, pero no parece especificar su valor exacto como lo hace GNU:
El estado de salida de un comando que finalizó porque recibió una señal se informará como mayor que 128.
Por ejemplo, si interrumpe un comando con control-C, el código de salida será 130, porque SIGINT es la señal 2 en los sistemas Unix. Entonces:
while [ 1 ]; do COMMAND; test $? -gt 128 && break; done