小编whi*_*edb的帖子

我可以在 bash 脚本中捕获时钟信号吗?

我可以在我的脚本中捕获一个 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)

bash trap

3
推荐指数
1
解决办法
5182
查看次数

标签 统计

bash ×1

trap ×1