Estoy siguiendo esta guía sobre cómo configurar la autenticación SSH sin contraseña con ssh-agent.
Para iniciar ssh-agent, el autor recomienda el siguiente código en .bash_profile:
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
eval `$SSHAGENT $SSHAGENTARGS`
trap "kill $SSH_AGENT_PID" 0
fi
No entiendo por qué está atrapando la señal 0. Según la señal del hombre 7, no hay tal señal.
¿Es solo un error tipográfico o un error o esto realmente logra algo?

0untrapcomando de shell . Al enviar una señal conkill, un número de señal de 0 significa no enviar una señal después de todo; Esta es una forma de probar la existencia del proceso objetivo.trap -l!Como muestra @Mat en su respuesta, un SIGSPEC de 0, cuando se usa en el
trapcomando, hará que eltrapcomando se ejecute cuando salga el script.Este ejemplo ilustra lo que sucede.
Cuando ejecutamos esto:
Se sienta aquí esperando indefinidamente. En otra ventana, si ahora le enviamos
killseñales, verá que akill -0no matará el proceso, a pesar de que la señal 0 aparece en eltrapcomando.Sin embargo, si utilizamos
killel script con la señal 1kill -1:Veremos que el guión sale e imprime el mensaje "hola" 2 veces. El primero para la señal 1, y el segundo porque salió el script.
fuente
trap en 0 se ejecuta cuando el shell sale. Se usa comúnmente para limpiar archivos tmp en un lugar que siempre se ejecuta:
la salida al final de la trampa sale del shell en la limpieza con el estado correcto.
fuente