我正在为 Unix 课程学习 Bash,我试图弄清楚如何运行脚本,然后在第一个脚本运行时运行第二个脚本并让两者交互。为了澄清,脚本如下所示:
#!/bin/bash
num = 1
trap exit 0 SIGINT SIGTERM
trap "{ echo &num ; num++; }" SIGUSR1
while :
do
sleep 2
done
第二个:
#!/bin/bash
if ps | grep "$1" > /dev/null
then
kill -SIGUSR1 $1
else
echo "Process doesn't exist"
fi
exit 0
如果代码不正确,一般的想法是让第一个脚本循环直到它收到 SIGINT 或 SIGTERM,并在收到 SIGUSR1 时回显并增加一个数字。第二个脚本将 pid 作为参数并检查它是否存在,并将 SIGUSR1 发送到给定进程。问题是,当我运行第一个脚本时,除非我用 ctrl-z 将它移到后台,否则我什么都做不了,但是当它在那里时,它似乎除了终止信号之外没有响应任何信号。关于如何使这项工作的任何想法?