是否可以在退出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