I was surprised by this:
R --interactive -e 'interactive()'
bash-3.2$ R -q -e 'interactive()' --interactive
> interactive()
[1] FALSE
>
as the command options document says that --interactive should force
interactive=TRUE:
" When *R* is run in a terminal (via |Rterm.exe| on Windows), it assumes
that it is interactive if ‘stdin’ is connected to a (pseudo-)terminal
and not if ‘stdin’ is redirected to a file or pipe. Command-line options
--interactive (Unix) and --ess (Windows, |Rterm.exe|) override the
default assumption"
But the code in system.c does this:
R_Interactive = R_Interactive && (force_interactive || isatty(0));
R_Interactive is set to FALSE in the -e/-f processing, and
force_interactive is set to TRUE in the --interactive processing, so
there is no way that it can ever override -e/-f. It seems that
--interactive can only have an effect for something like a pipe. Is this
actually the expected behavior?
Mick Jordan
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel