我可以在我的脚本中捕获一个 5 分钟的信号吗?我想象这样的事情,
function dosomething {
echo "It's been 5 minutes."
}
trap dosomething SIGNAL-EVERY-5-MINUTES
while true
do
sleep 10
done
Run Code Online (Sandbox Code Playgroud)
请注意,此示例没有意义。只是问是否有可能每 x 次捕获一些东西。
编辑:基于@vinc17 的回答,我注意到sleep来自主 shell 的命令没有被USR1信号中断,这就是我想要做的。
#!/bin/bash
time=10
(
set -e
while true
do
sleep 30
# Since this is run as a subshell (instead of an external command),
# the parent pid is $$, not $PPID.
kill -USR1 $$
done
) &
finish() {
kill $!
echo "Closing."
exit 0
}
changetime() …Run Code Online (Sandbox Code Playgroud)