blob: bbd9fab9211e0bf23b9b6a0c3d3670ff621e08b0 [file] [log] [blame]
% File src/library/base/man/interactive.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2014 R Core Team
% Distributed under GPL 2 or later
\name{interactive}
\alias{interactive}
\title{Is R Running Interactively?}
\description{
Return \code{TRUE} when \R is being used interactively and
\code{FALSE} otherwise.
}
\usage{
interactive()
}
\details{
An interactive \R session is one in which it is assumed that there is
a human operator to interact with, so for example \R can prompt for
corrections to incorrect input or ask what to do next or if it is OK
to move to the next plot.
GUI consoles will arrange to start \R in an interactive session. When
\R is run in a terminal (via \command{Rterm.exe} on Windows), it
assumes that it is interactive if \file{stdin} is connected to a
(pseudo-)terminal and not if \file{stdin} is redirected to a file or
pipe. Command-line options \option{--interactive} (Unix) and
\option{--ess} (Windows, \command{Rterm.exe}) override the default
assumption.
#ifdef unix
(On a Unix-alike, whether the \code{readline} command-line editor is
used is \strong{not} overridden by \option{--interactive}.)
#endif
Embedded uses of \R can set a session to be interactive or not.
Internally, whether a session is interactive determines
\itemize{
\item how some errors are handled and reported, e.g.\sspace{}see
\code{\link{stop}} and \code{\link{options}("showWarnCalls")}.
\item whether one of \option{--save}, \option{--no-save} or
\option{--vanilla} is required, and if \R ever asks whether to save the
workspace.
\item the choice of default graphics device launched when needed and
by \code{\link{dev.new}}: see \code{\link{options}("device")}
\item whether graphics devices ever ask for confirmation of a new
page.
}
In addition, \R's own \R code makes use of \code{interactive()}: for
example \code{\link{help}}, \code{\link{debugger}} and
\code{\link{install.packages}} do.
}
\note{
This is a \link{primitive} function.
}
\seealso{
\code{\link{source}},
\code{\link{.First}}
}
\examples{
.First <- function() if(interactive()) x11()
}
\keyword{environment}
\keyword{programming}