如何将 heredoc 与 Rscript 命令一起使用

How to use a heredoc with the Rscript command

提问人:abalter 提问时间:5/8/2023 更新时间:5/8/2023 访问量:64

问:

使用 heredoc 代替文本文件似乎适用于:python

(base) balter@exahead1:~$ python <<EOF
print("hello")
EOF
hello

但是,它似乎不适用于:Rscript

(base) balter@exahead1:~$ Rscript <<EOF
print("hello")
EOF
Usage: Rscript [options] file [args]
   or: Rscript [options] -e expr [-e expr2 ...] [args]
A binary front-end to R, for use in scripting applications.

Options:
  --help              Print usage and exit
  --version           Print version and exit
  --verbose           Print information on progress
  --default-packages=LIST  Attach these packages on startup;
                        a comma-separated LIST of package names, or 'NULL'
and options to R (in addition to --no-echo --no-restore), for example:
  --save              Do save workspace at the end of the session
  --no-environ        Don't read the site and user environment files
  --no-site-file      Don't read the site-wide Rprofile
  --no-init-file      Don't read the user R profile
  --restore           Do restore previously saved objects at startup
  --vanilla           Combine --no-save, --no-restore, --no-site-file,
                        --no-init-file and --no-environ

Expressions (one or more '-e <expr>') may be used *instead* of 'file'.
Any additional 'args' can be accessed from R via 'commandArgs(TRUE)'.
See also  ?Rscript  from within R.

作为测试,它确实适用于文本文件:

(base) balter@exahead1:~$ cat test.R
print("hello")
(base) balter@exahead1:~$ Rscript test.R
[1] "hello"
R Linux Bash heredoc rscript

评论

1赞 STerliakov 5/8/2023
Heredoc 不是一个干净的文件,因此 Rscript 无法将其作为句柄打开。您可以执行类似的调用操作 - 期望命令输入。如果您能忍受打印的每一行结果,这应该就足够了。R -s --vanilla <<EOF ...R
2赞 Cyrus 5/8/2023
我建议:Rscript - << EOF
0赞 STerliakov 5/8/2023
colinfay.me/intro-to-r/appendix-b-invoking-r.html

答: 暂无答案