Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我写了下面的脚本:
#!/bin/bash sleep 15 function_signalr() { date date | awk '{printf "%-15s\n", $2}' } trap "function_signalr" 10
当我通过“进程&”启动进程时,它会运行,给出 PID。我确实杀死了 -10 PID,但我的陷阱不起作用。进程被杀死,但陷阱没有出现。没有给出日期消息。我将不胜感激任何建议。
你的trap不起作用,因为外壳还不知道它。
trap
您需要定义trap函数,设置trap然后编写代码。
#!/bin/bash function_signalr() { date date | awk '{printf "%-15s\n", $2}' } trap "function_signalr" 10 # Code follows now sleep 15
此外请注意,这sleep是阻塞的,这意味着如果您这样做,kill -10 PID那么在完成trap之前不会执行sleep。
sleep
kill -10 PID