我了解了如何让 Rscript 在给定文件名作为参数时执行我想要的操作,例如如果我的 Rscript 被调用script
并包含:
#!/usr/bin/Rscript
path <- commandArgs()[1]
writeLines(readLines(path))
然后我可以从 bash 命令行运行:
Rscript script filename.Rmd --args dev='svg'
并成功获取内容filename.Rmd
向我回响。如果不传递上述参数而是像这样的文件名filename.Rmd
我想传递文本stdin
,我尝试修改我的脚本以从标准输入读取:
#!/usr/bin/Rscript
writeLines(file("stdin"))
但我不知道如何构建这种情况下的命令行调用。我尝试通过管道输入内容:
cat filename.Rmd | Rscript script --args dev='svg'
还尝试了重定向:
Rscript script --args dev='svg' < filename.Rmd
无论哪种方式我都会收到错误:
Error in writeLines(file("stdin")) : invalid 'text' argument
(我也尝试过open(file("stdin"))
)。我不确定我是否错误地构建了 Rscript,或错误地命令行参数,或两者兼而有之。
您需要从创建的连接中读取文本file("stdin")
为了传递任何有用的东西text
的论证writeLines()
。这应该有效
#!/usr/bin/Rscript
writeLines(readLines(file("stdin")))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)