如果我正确理解您的问题,我可以使用 littler 来实现这一点,我用它代替 Rscript 来编写围绕 R 的脚本任务。我正在运行 CentOS 7,并基于代码在您的问题中,您看起来像是在类似 Unix 的机器上,所以 installing littler 应该不是问题。为了最小化可重复性,我使用了 RStudio 提供的默认闪亮应用程序和基于闪亮的 Rmarkdown 模板,将它们分别保存为testapp(项目/应用程序目录名称)和testRMD.rmd。然后,我有以下脚本:
testapp.r
#!/usr/bin/env r
shiny::runApp(
"~/tmp/delete/testapp",
port = 7088,
launch.browser = TRUE,
host = "127.0.0.1")
testRMD.r
#!/usr/bin/env r
rmarkdown::run(
file = "testRMD.rmd",
dir = "~/tmp/delete",
shiny_args = list(
port = 7088,
launch.browser = TRUE,
host = "127.0.0.1"))
设置这些文件的权限,以便它们可以执行 -
[nathan@nrussell R]$ chmod +x testapp.r testRMD.r
(chmod +u ... 应该足够了,但无论如何......),你应该准备好从你的终端运行它们,等等......
[nathan@nrussell R]$ ./testapp.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
[nathan@nrussell R]$ ./testRMD.r
Loading required package: shiny
Listening on http://127.0.0.1:7088
我省略了Rmd 文件的一些额外命令行输出,但我确信如果需要,可以轻松地抑制它。无论如何,这似乎工作正常 - 闪亮的应用程序和 Rmarkdown 应用程序都是交互式的,就像从 RStudio 启动时一样 - 但如果你有其他想法,请澄清。