shell脚本如何关闭自身?

qq_17635085 2017-12-07 07:36:21
我编写了两个SHELL脚本,分别命名为脚本A.SH 和脚本B.SH,其实A.SH的作用是循环监控一个值,当值没有异常的时候输出信息,当这个值发生变化的时候,执行脚本B,并且关闭A.SH。 SH. A的逻辑结构如下所示:
#!/bin/bash
while [ 1 ]
do
if [ 判断条件 ]
{
./B.SH
}
break
else
echo "message"
fi
done
exit 0
当判断条件成立的时候,也确实执行了B.SH,并且A.SH的echo也不再输出信息。但是!我 ps -ef查看进程的时候,发现A.SH的进程依然存在,然后在SHELL里杀死也可以杀死。但是按照脚本,不是应该在执行B.SH后就执行exit 0退出了吗?为什么进程依然存在呢?而且进程存在的时候也没有输出echo的信息,有大神能解释一下吗?还有就是如何杀死A.SH的进程呢?(我希望的是当判断条件成立,执行B.SH后,能够杀死A.SH的进程)
...全文
616 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码誊写工 2017-12-08
  • 打赏
  • 举报
回复
#!/bin/bash
while [ 1 ]
do
    if [ 判断条件 ]; then
        exec ./B.sh #exec就直接退出当前进程,执行./B.sh,你原来的方法是先去执行B.sh,等B.sh执行完了才会执行break
    else
        echo "message"
    fi
done
exit 0

19,610

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧