Respuesta corta
Su enlace parece ser para bash
. Las últimas versiones de MacOS utilizan ahora zsh
como shell por defecto. La siguiente tabla resume las posibles zsh
equivalentes.
Batida original
Cerrar zsh Equivalente
trampa -l
para sig en $(kill -l); do printf "%2s) SIG$sig \n " $(kill -l $sig); done
o
bash -c 'trap -l'
trampa -p
trampa
trampa -p sig
trap | grep -E sig $
trampa -p sig1 sig2 ...
trap | grep -E -e sig1 $ -e sig2 $ ...
Respuesta más larga y detallada
Su enlace parece ser para bash
. Las últimas versiones de MacOS utilizan ahora zsh
como el shell por defecto.
En zsh
El comando que se muestra a continuación mostrará los nombres de las señales.
kill -l
Por ejemplo, el comando anterior produce la siguiente salida
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2
Además, el comando que aparece a continuación mostrará el número de señal correspondiente a cada sig
que es un nombre.
kill -l [ sig ... ]
Por ejemplo, el comando
kill -l INT QUIT ILL TRAP ABRT
producirá la siguiente salida.
2
3
4
5
6
Puede introducir man zshbuiltins
para obtener ayuda con el trap
y kill
de los componentes para zsh
.
Al entrar en trap -l
el comando -l
se asoció con ninguna señal. Se puede demostrar que esto es cierto añadiendo una señal al trap -l
como se muestra a continuación.
trap -l USR1
Aquí, el comando -l
se asocia con el USR1
señal. Esto puede demostrarse introduciendo el comando que se indica a continuación. Este comando imprime la lista de comandos asociados a USR1
señal
trap | grep -E USR1$
A continuación se muestra la salida del comando anterior.
trap -- -l USR1
Normalmente, el comando -l
no existiría.
Los siguientes comandos producirían una salida similar a la del uso de bash
incorporado trap -l
.
for sig in $(kill -l); do printf " '%2s) SIG$sig'" $(kill -l $sig); done | xargs printf "%-15s %-15s %-15s %s\n"
A continuación se muestra el resultado de introducir el comando anterior.
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE
9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG
17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD
21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGINFO 30) SIGUSR1 31) SIGUSR2
Supongo que los comandos anteriores podrían ser envueltos en una función, como se muestra a continuación.
trap-l() { local sig; for sig in $(kill -l); do printf " '%2s) SIG$sig'" $(kill -l $sig); done | xargs printf "%-15s %-15s %-15s %s\n"; }
Esto permitiría producir la salida con sólo introducir trap-l
. Sin embargo, esto podría ser simplemente una locura, ya que aparentemente podría haber introducido simplemente el comando bash -c 'trap -l'
.