stdin から読み取るには、次の 2 つの方法があります。しかし、使用する方法source()
は機能しません。メソッドを機能させる方法を知っている人はいますsource()
か?ありがとう。
~$ cat main.sh
#!/usr/bin/env bash
set -v
cat main.csv | Rscript main.R
cat main.csv | R -q --vanilla <<EOF
source('main.R')
EOF
~$ cat main.R
f=read.csv(file('stdin'))
f
~$ ./main.sh
cat main.csv | Rscript main.R
> f=read.csv(file('stdin'))
> f
X V1 V2
1 1 1 11
2 2 2 12
3 3 3 13
4 4 4 14
5 5 5 15
6 6 6 16
7 7 7 17
8 8 8 18
9 9 9 19
10 10 10 20
>
cat main.csv | R -q --vanilla <<EOF
source('main.R')
EOF
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
Calls: source ... withVisible -> eval -> eval -> read.csv -> read.table
Execution halted