blob: 68daecf93df14722dee11b8fe8877053d9ab3975 [file] [log] [blame]
% File src/library/base/man/Sys.setenv.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2011 R Core Team
% Distributed under GPL 2 or later
\name{Sys.setenv}
\alias{Sys.setenv}
\alias{Sys.unsetenv}
\title{Set or Unset Environment Variables}
\usage{
Sys.setenv(\dots)
Sys.unsetenv(x)
}
\arguments{
\item{\dots}{named arguments with values coercible to a character string.}
\item{x}{a character vector, or an object coercible to character.}
}
\description{
\code{Sys.setenv} sets environment variables (for other processes
called from within \R or future calls to \code{\link{Sys.getenv}} from
this \R process).
\code{Sys.unsetenv} removes environment variables.
}
\value{
A logical vector, with elements being true if (un)setting the
corresponding variable succeeded. (For \code{Sys.unsetenv} this
includes attempting to remove a non-existent variable.)
}
\details{
Non-standard \R names must be quoted in \code{Sys.setenv}: see the
examples. Most platforms (and POSIX) do not allow names containing
\code{"="}. Windows does, but the facilities provided by \R may not
handle these correctly so they should be avoided. Most platforms
allow setting an environment variable to \code{""}, but Windows does
not, and there \code{Sys.setenv(FOO = "")} unsets \env{FOO}.
There may be system-specific limits on the maximum length of the values
of individual environment variables or of all environment variables.
#ifdef windows
Windows has a limit of 32,767 characters on the environment block, and
\code{cmd.exe} has a limit of 2047 (Windows 2000) or 8192 characters
(XP and later) for each value.
#endif
}
% http://support.microsoft.com/kb/830473
#ifdef unix
\note{
If \code{Sys.unsetenv} is not supported, it will at least try to
set the value of the environment variable to \code{""}, with a
warning.
}
#endif
\seealso{
\code{\link{Sys.getenv}}, \link{Startup} for ways to set environment
variables for the \R session.
\code{\link{setwd}} for the working directory.
The help for \sQuote{\link{environment variables}} lists many of the
environment variables used by \R.
}
\examples{
print(Sys.setenv(R_TEST = "testit", "A+C" = 123)) # `A+C` could also be used
Sys.getenv("R_TEST")
#ifdef windows
Sys.unsetenv("R_TEST")
#endif
#ifdef unix
Sys.unsetenv("R_TEST") # may warn and not succeed
#endif
Sys.getenv("R_TEST", unset = NA)
}
\keyword{environment}
\keyword{utilities}