0

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

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

我愿意使用“at”以外的东西,但我发现我认为可以工作的唯一另一件事是使用 date -d 计算以秒为单位的睡眠时间,我已经说过这不起作用.. .

4

1 回答 1

0

这是一种方法:

#!/bin/ksh
at $@ <<%
    exec > $(tty) 2>&1
    while [ ! x ] ; do sleep 10 ; done
    echo Done
%
于 2014-03-16T09:39:42.107 回答