[Rd] Spurious output white line in R script (PR#8631)
François Pinard
pinard at iro.umontreal.ca
Thu Feb 23 00:10:22 CET 2006
[Simon Urbanek]
>I don't see the bug here ... you may want to explain how this behavior
>conflicts with the documentation.
Oh, sorry. I merely surmised that R developers were aware of the
meaning of "--slave" option. Within the output resulting of command
"man R", one reads:
--slave
Make R run as quietly as possible
So, I was not expecting R, running with that option activated, to
"volunteer" white lines. :-)
>If you don't want it, tell R to explicitly terminate in your script,
>e.g. with quit("no",0) - then there will be no new line.
Thanks for this work-around, which solves the problem of the spurious
white line at end of script. I did not need arguments on the q() call,
first because the "no" is already implied through "default" from the
"--vanilla" option and second because 0 is also the default exit status.
Yet, it sounds reasonable to suggest (or hope) that R interprets an
end-of-file as meaning that R should cleanly quit. I naively thought
that it does this already, from the fact that interactively at least,
R seems to behave on a Ctrl-D as if q() has been called.
This is either right or wrong using an end-of-file instead of calling
q(). If it is right to use end-of-file instead of an explicit q() call,
I'm reporting a bug. If it is wrong to use end-of-file instead of an
explicit q() call, I'm rather making a suggestion. :-)
If you consider that the user is definitely wrong by not calling q()
explicitly, and that various unexpected things may then happen, R would
be friendlier if it produced a diagnostic, hitting an end-of-file while
expecting a statement. Interactively, it could even go further, and
nicely remind the user, at the time the user types Ctrl-D, that calling
q() is the only proper way for cleanly terminating an R session.
>On Feb 22, 2006, at 1:41 PM, pinard at progiciels-bpi.ca wrote:
>>I noticed that R scripts produce a spurious white line after output.
>>For example, the following shell script,
>>#!/bin/sh
>>R --slave --vanilla <<EOF
>>cat("Hello\n")
>>EOF
>>when made executable under the name ``hello`` along the search
>>path, behaves
>>like this:
>>$ hello | od -bc
>>0000000 110 145 154 154 157 012 012
>> H e l l o \n \n
>>0000007
>>The second newline is not wanted, and I would like if R was not
>>producing it.
>Cheers,
>Simon
--
François Pinard http://pinard.progiciels-bpi.ca
More information about the R-devel
mailing list