在KSH中的特定时间(睡眠或其他)运行一系列命令

时间:2014-03-16 05:20:35

标签: date unix sleep ksh at-job

所以这就是我的问题:使用KSH我需要运行一个脚本,该脚本需要一个时间输入,其范围可以是其风格(现在+ 5分钟,23:00,周二等),并且当时运行一个循环,每隔10秒检查一次条件,直到满足条件。我的困境是日期程序不支持-d选项让我能够睡到那个指定的时间。我以为我必须使用at命令,但我没有运气。基本语法是:

at $time 
  while sleep 10 ; do
    if [ x ] ; then
      echo "Done"
      break
    fi
  done

我愿意使用'以及'以外的其他内容。但是我发现我认为可行的唯一另一件事就是用日期-d来计算睡觉时间,这已经说过我已经胜利了......

1 个答案:

答案 0 :(得分:0)

这是一种方法:

#!/bin/ksh
at $@ <<%
    exec > $(tty) 2>&1
    while [ ! x ] ; do sleep 10 ; done
    echo Done
%