Haruo Suzuki
hs568****@corne*****
2010年 4月 29日 (木) 10:49:52 JST
g-language-1.8.11/lib/Rcmd.pm 157行目 . $this->{cmd} . " >& " . $this->{log}); を . $this->{cmd} . " > " . $this->{log} . " 2>&1"); に変更願います。 > explanations here: > https://wiki.ubuntu.com/DashAsBinSh > > I think there is a bug somewhere in Rcmd.pm, which does not > support POSIX Shell, like line 156: > > system("/usr/bin/env R " . $this->{save} . " --slave < " > . $this->{cmd} . " >& " . $this->{log}); > > should be > > system("/usr/bin/env R " . $this->{save} . " --slave < " > . $this->{cmd} . " > " . $this->{log} . " 2>&1"); > > There might be other places like that. >>> ■'>&'でエラー >>> Ubuntu LinuxサーバでRcmd.pmを使用したところ、 >>> sh: Syntax error: Bad fd number >>> というエラーが出力されたので、とりあえず >>> Rcmd.pmの162行目 >>> . $this->{cmd} . " >& " . $this->{log}); >>> のリダイレクトを'>'に変更してエラーを回避しました。 >>> (または'2>&1') >>> >> 2>&1を採用しました。 > > > Rcmd.pmの162行目の > . $this->{cmd} . " 2>&1 " . $this->{log}); > リダイレクト(" > "、" >& "、" 2>&1 ")の > 挙動を > 以下のスクリプトで確認したところ、 > -------------------- > use Rcmd; > my $rcmd = new Rcmd; > my @result = $rcmd->exec("c(1:10)"); > print "print: @result \n"; > -------------------- > > " > "と" >& "では、以下の正しい出力が得られますが、 > -------------------- > print: 1 2 3 4 5 6 7 8 9 10 > -------------------- > > " 2>&1 "では、以下の出力が得られてしまいます。(@result > が空) > -------------------- > ARGUMENT '/tmp/6110325511.67064.log' __ignored__ > > [1] 1 2 3 4 5 6 7 8 9 10 > print: > --------------------