【问题标题】:Bash: Program next execution of current script using 'at'Bash:使用'at'对当前脚本的下一次执行进行编程
【发布时间】:2013-03-05 13:42:27
【问题描述】:

我想执行一个脚本并让它安排下一次执行。一个示例是:

#!/bin/bash

TMP=/tmp/text.txt
SCRIPT=$(readlink -f $0)

date >>$TMP
at -f $SCRIPT now + 1 minutes >>$TMP 2>&1
echo -e "\n" >>$TMP

示例执行如下:

  1. 首次执行正常。安排到下一分钟
  2. 第二次执行写入正常,但没有安排

结果输出将是:

tue mar  5 14:34:01 CET 2013
job 15 at 2013-03-05 14:35


tue mar  5 14:35:00 CET 2013
job 16 at 2013-03-05 14:36

[now at 2013-03-05 14:38]

atq 什么也不输出,我也看不到任何 /var/at/jobs(事实上,ls /var/at* 什么也不输出。/var/mail/ 中的任何用户都没有消息。我正在尝试一个 CentOS 版本 5.6 x86_64

有人对可能发生的事情有任何暗示吗?

【问题讨论】:

  • 你检查过这一行的输出吗-: SCRIPT=$(readlink -f $0) ?
  • 尝试使用其完全限定的层次名称运行脚本,例如:/home/fred/bin/myscript 它可能是第二次从不同的目录运行。

标签: linux bash centos


【解决方案1】:

怀疑者,你说得对...echo $SCRIPT给出'/bin/bash'...我已经手动编写了完整路径,现在它可以工作了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多