22 votos

Ctrl-C en scripts de bash

¿Cómo puedo aplicar ctrl+c en el manejo de scripts de bash para que el script se interrumpe, así como el que actualmente se ejecuta el comando de marcha por la secuencia de comandos?

(Imaginen que hay un script que se ejecuta algunos de larga ejecución de comandos. El usuario pulsa ctrl+c y se interrumpe el comando, pero el guión de ingresos.) La necesito para comportarse de una manera que ambos están muertos.

3voto

Kvisle Puntos 2798

Puede hacer esto mediante la creación de una subrutina desea llamar cuando SIGINT es recibido, y que usted necesita para ejecutar trap 'subroutinename' INT.

Ejemplo:

#!/bin/bash

int_handler()
{
    echo "Interrupted."
    # Kill the parent process of the script.
    kill $PPID
    exit 1
}
trap 'int_handler' INT

while true; do
    sleep 1
    echo "I'm still alive!"
done

# We never reach this part.
exit 0

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: