美文网首页
shell中定时器-指定时间后检查上条命令

shell中定时器-指定时间后检查上条命令

作者: sunland_0416 | 来源:发表于2021-03-04 08:27 被阅读0次

工作中需要写个脚本,在一条命令执行后,过指定时间比如10秒后检查命令是否执行成功。
通过搜索发现两个思路
第一,
参考https://www.cnblogs.com/JeffChen/archive/2011/12/26/2600241.html

#!/bin/ksh
#Delaytime=0
AlarmHandler()
{
    echo "Get SIGALAM"
    KillSubProcs
    exit 14
}
KillSubProcs()
{
#kill cbm
    echo "it's time out,kill cbm here"
    if [ $? -eq 0 ];then
        echo "Sub-processes killed."
    fi
}
 
SetTimer()
{
    Delaytime=$1
    echo $Delaytime
    if [ $Delaytime  -ne 0 ];then
        sleep $Delaytime  && kill -s 14 $$ &
        #CHPROCIDS="$CHPROCIDS $!"
        TIMERPROC=$!
    fi
}
UnsetTimer()
{
    echo "Start to unset timer"
    kill $TIMERPROC
}
 
trap AlarmHandler 14
SetTimer 30
#CHPROCIDS="$CHPROCIDS $!"
#wait $!
sleep 40
UnsetTimer
echo "ALL Done."
exit 0

第二,通过touch命令生成一个文件,然后检查文件是否存在

func(){
    ls>>abc.txt
    touch finished
}
func &
sleep 10
if [ -f finished ]
then
    echo "finished"
else
    echo "not finished"
fi
rm -f finished

相关文章

  • shell中定时器-指定时间后检查上条命令

    工作中需要写个脚本,在一条命令执行后,过指定时间比如10秒后检查命令是否执行成功。通过搜索发现两个思路第一,参考h...

  • Linux常用命令汇总之内建命令

    : 扩展参数列表,执行重定向操作 . 读取并执行指定文件中的命令(在当前shell环境中) alias 为指定命令...

  • [Linux-Shell] 基础知识

    搬运 一、主要内容 shell编程 sed命令 awk命令 crontab定时器 二、简介 Shell是用户与内核...

  • shell内建命令一览

    命令说明:扩展参数列表,执行重定向操作.读取并执行指定文件中的命令(在当前 shell 环境中)alias为指定命...

  • echo命令详解

    echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在she...

  • DockerFile中的CMD不执行

    在DockerFile中写入的CMD后面的命令不执行主要是因为启动的时候指定了shell 尝试不指定shell如d...

  • 常用内置命令及其他-01-echo命令

    1. 命令介绍 echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的ech...

  • Shell test 命令

    Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个...

  • Shell test命令

    Shell test命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方...

  • macOs配置系统环境变量

    检查默认终端(shell)是什么 首先,检查你的默认shell是什么,操作命令:echo $SHELL以前每个新用...

网友评论

      本文标题:shell中定时器-指定时间后检查上条命令

      本文链接:https://www.haomeiwen.com/subject/qkuhqltx.html