我读过关于 bash 回调的讨论,jlliagre 发布了一个惊人的例子。
jlliagre 发布的回调示例 在
这里背诵要点。
1.创建回调示例并在终端上运行它./callback-example
。
#!/bin/bash
myCallback() {
echo "I've been called at $(date +%Y%m%dT%H%M%S)"
}
# Set the handler
trap myCallback SIGUSR1
# Main loop. Does nothing useful, essentially waits
while true; do
read foo
done
2.在另一个终端上,向shell进程发送USR1信号。
$ pkill -USR1 callback-example
作者说:发送的每个信号都应触发在第一个终端中显示如下行:
I've been called at 20180925T003515
I've been called at 20180925T003517
我发现它永远不会在我的 bash 中发生,如何修复它并在 bash 中运行?