是否可以在退出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. 使用自定义命令执行shell
- 2. 我的JSch会话不执行命令
- 3. 执行命令,然后退出
- 4. 执行同时执行的命令并在完成时退出
- 5. 执行命令后执行自定义代码
- 6. Java命令行退出命令?
- 7. 退出命令行Python中
- 8. 从python命令行退出
- 9. CMake的:自定义命令后执行文件副本运行
- 10. Strongloop自定义脚本不会退出
- 11. 会话的自定义输出:消息?
- 12. WiX扩展命令行自定义操作不执行
- 13. 在winform中执行命令提示符下的自定义命令C#
- 14. 自定义命令
- 15. Emacs的自定义命令行参数
- 16. 如何在perl中执行相同通道中的命令退出命令
- 17. Python - 捕获通过SSH执行的命令的退出状态
- 18. 通过ssh执行的管道命令的退出状态
- 19. 如何在命令行执行mercurial commit时退出VIM?
- 20. 命令提示符不会退出
- 21. 正在运行的会话中的matlab命令(来自bash /命令行)
- 22. R发光的执行命令
- 23. 自定义退出流行文本
- 24. laravel自定义命令未列出
- 25. shell脚本:执行命令的退出状态不正确
- 26. 如何获得使用Testcontainers执行的命令退出代码?
- 27. 在Node.js的执行bash命令,并得到退出代码
- 28. 执行“退出”时无效的命令名“exit”
- 29. 自定义对话框执行NPE
- 30. 自动化执行命令
定义'.Last'函数是否对你有帮助? https://stat.ethz.ch/R-manual/R-devel/library/base/html/quit.html – Jean
这给了我reg.finalizer上的提示,谢谢! – hannes101