【问题标题】:Script to run a command at 10 o'clock在 10 点运行命令的脚本
【发布时间】:2015-08-18 06:14:49
【问题描述】:

如果时间等于 x,我想知道如何运行一个脚本,该脚本将在我的 PC 上运行命令。我听说过at 命令和其他一些命令,但我正在尝试让我的命令有点独特。

问题是当我尝试我的脚本时,当我的计算机打开并运行它时,它会检查小时但是如果我在 x:36 或什么时候打开我的电脑,那么我的刷新将在 x 之后的一个小时发生但是还有 36 分钟,请指教!

我的脚本

time="$(date +%H)"
echo $time
if [ $time != "22" ]; then
    sleep 1h
else
    zenity --title="asdf" --text="asdf" --info
fi

【问题讨论】:

  • 阅读 cron/at 但为什么要重新发明轮子
  • 谢谢,crontab 正是我所需要的 :) 感谢其他答案!

标签: linux bash terminal


【解决方案1】:

如果只想在 22:00 运行命令,输出并比较小时和分钟:

time=$(date +%H:%M)
if [ $time != 22:00 ] ; then
    sleep 58
...

【讨论】:

  • sleep 60 不能保证睡眠准确 60 秒——它可以睡得更多,也可以睡得更少。在负载很重的系统上冒险错过窗口似乎并不理想。
【解决方案2】:

你不想睡 1 小时,你想睡到直到 2200。使用 GNU date,你可以使用

now=$(date +%s)
t=$(date +%s --date 2200)
sleep "$now"
zenity --title="asdf" --text="asdf" --info

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 2011-01-04
    • 2020-08-30
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多