是否可以在退出R会话时启动命令,类似于.Rprofile
文件中的命令,但是仅在离开会话时发出命令。 我当然知道一个.RData文件可以自动存储,但由于我经常切换机器,这可能会有不同的存储设置,所以执行每个会话的自定义save.image()
命令会更容易。执行退出R会话的自定义命令
回答
q
的帮助可以提供一些提示。您可以创建一个名为.Last
的函数,也可以在要退出时运行的环境中注册终结器。
> reg.finalizer(.GlobalEnv,function(e){message("Bye Bye")},onexit=TRUE)
> q()
Save workspace image? [y/n/c]: n
Bye bye!
,如果你希望它是相当永久的,你可以在你的[R启动(如.RProfile
)注册的终结。
[编辑:以前我在新环境中注册了终结器,但这意味着保持这个对象周围,而不是删除它,因为垃圾收集会触发终结器。正如我现在写的那样,终结者被挂在全局环境上,在正常使用时不应该被垃圾收集)。]
由于没有定义'e',因此这里并不适用。这是否是正确的,通过使用'environment()'而不是'e'?像 'reg.finalizer(environment(),function(x){save.image(“custom.RData”,compress =“xz”)},onexit = TRUE)' – hannes101
糟糕!我错过了从我的第一篇文章粘贴'e = new.env()',但我现在有了一个更好的方法,不需要一个新的对象,并且不会意外触发! – Spacedman
我注意到这似乎并不总能正常工作。它发生了几次,RData文件没有完整保存。在R会话被杀之前,大小可能太大而且需要太长时间才能保存。 – hannes101
- 1. 执行命令,然后退出
- 2. 执行同时执行的命令并在完成时退出
- 3. 执行命令后执行自定义代码
- 4. Java命令行退出命令?
- 5. 从python命令行退出
- 6. 退出命令行Python中
- 7. Strongloop自定义脚本不会退出
- 8. 会话的自定义输出:消息?
- 9. 自定义命令
- 10. Python - 捕获通过SSH执行的命令的退出状态
- 11. 如何在命令行执行mercurial commit时退出VIM?
- 12. 命令提示符不会退出
- 13. laravel自定义命令未列出
- 14. 自定义退出流行文本
- 15. shell脚本:执行命令的退出状态不正确
- 16. 如何获得使用Testcontainers执行的命令退出代码?
- 17. 执行“退出”时无效的命令名“exit”
- 18. 在Node.js的执行bash命令,并得到退出代码
- 19. 自定义对话框执行NPE
- 20. 自动化执行命令
- 21. 退出HttpClient会话
- 22. 自定义Django管理命令不会出现在Heroku
- 23. 如何在linux中执行自定义复制命令?
- 24. 如何使easy_install在setup.py中执行自定义命令?
- 25. 在自定义GINA上执行telnet命令
- 26. 配置knotify在KDE上执行一个自定义命令
- 27. 退出(退出)执行
- 28. 从命令行重命名Yakuake会话
- 29. 执行两个命令到R中的一个命令中
- 30. Node.js:自定义命令行界面
定义'.Last'函数是否对你有帮助? https://stat.ethz.ch/R-manual/R-devel/library/base/html/quit.html – Jean
这给了我reg.finalizer上的提示,谢谢! – hannes101