特定于Mac - 简单可重复的示例:
Sys.sleep(60)
print("output")
Sys.sleep()的帮助页面说它应该检查中断,但它似乎不尊重任何形式,不是ctrl-c,不是Esc,而不是停止按钮。您可以使用从终端运行脚本的ctrl-c中断,但会终止整个脚本。
我想设置一个延迟时间间隔,我仍然可以中断,此时脚本将继续(因此,即使尚未过60秒,“输出”仍会打印)。有没有(希望不是太资源)的方式来做到这一点?
更一般地说,当你不在终端时,有没有办法在Mac上中断Sys.sleep呼叫,无论之后发生了什么?
相关资源似乎仍无法解决这个问题:
https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html#How-can-I-interrupt-lengthy-operations-or-output_003f< - 显然可以从终端注入中断?但这很笨重,当然也没有达到主要目标。
答案 0 :(得分:0)
这是我发现的一种可能性,使用系统睡眠而不是R版本:
system("sleep 60")
print("output")
这允许在Mac上使用Esc退出系统睡眠状态(当R控制台保持清晰对焦时),因此提供了一个可行的解决方案。
不完全优雅,但完全可以使用。
(标记我自己的帖子,但如果有人提供了更好的解决方案,他们可以进行检查。)