【问题标题】:couldn't display osascript dialog with crontab无法使用 crontab 显示 osascript 对话框
【发布时间】:2019-02-17 02:38:50
【问题描述】:

如何使用 crontab 显示 osascript 对话框?我可以简单地在终端中使用 python os.system 执行"""osascript -e 'display dialog "displaying content" ' """,然后会显示对话框,这意味着os.system 正确执行了osascript command。我可以在上午 10:32 执行 crontab 命令,如32 10 * * * mkdir /path 来创建一个文件夹,这意味着 crontab 也可以正常工作。但是,当我使用 crontab 执行 """osascript -e 'display dialog "displaying content" ' """ 时,什么都没有显示,似乎有什么东西阻止了对话框栏在我的屏幕上显示,我想知道发生了什么?

【问题讨论】:

    标签: cron applescript


    【解决方案1】:

    由于某种原因,这在 Big Sur 下对我有用(但仅不提供 osascript 的完整路径):

    * * * * * * /usr/bin/bash; osascript -e 'display dialog "Kilroy was here!"'

    【讨论】:

    • 原来那个前缀命令是/bin/zsh;效果也很好,甚至只是分号;
    • * * * * * * ;osascript -e 'display dialog "Kilroy was here!"' 这行得通!
    • Final(?) 备注:Mac OS 上的 crontab 似乎只使用 6 个“字段”(没有年份)。事实上,它以最简单的方式工作,我被愚弄了(为了清楚起见,下一条评论):
    • * * * * * osascript -e 'display dialog "Kilroy was here!"'
    【解决方案2】:

    如果使用 crontab,则不需要额外的引号。它应该在没有引号的情况下工作。您应该能够通过在没有 Python 的终端中运行来确认这一点。如果在终端中使用引号运行,则会生成错误。 bash: osascript -e 'display dialog displaying: command not found

    尝试将此行添加到您的 crontab 命令中:

    osascript -e 'display dialog "displaying content"'
    

    【讨论】:

    • 是的,我可以直接在终端中执行link italic bold osascript -e 'display dialog "displaying content"',它工作正常。多余的引号是python执行AppleScript的,python代码是:linkitalicboldimport os def notify(): os.system(""" osascript -e 'display dialog "displaying content" ' """) notify()
    • 如果我在终端或 Pycharm 中执行上面的 python 程序,一切都很好,但是如果我在 crontab 中执行上面的程序,对话栏不会显示。
    • 你说得对,applescript 现在不会从 cron 运行。你应该检查这个answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2021-01-17
    • 2017-08-14
    • 1970-01-01
    • 2013-07-04
    相关资源
    最近更新 更多