Learn R Programming

this.path (version 2.7.1)

is.main: Top-Level Code Environment

Description

Determine if a program is the main program, or if a program was run from a shell.

Usage

is.main()
from.shell()

Arguments

Value

TRUE or FALSE.

Details

If no scripts are being source()-ed, then is.main() will be TRUE, and FALSE otherwise.

If is.main() is TRUE and R was invoked with the command-line arguments -f FILE, --file=FILE, or -e EXPR, then from.shell() will be TRUE, and FALSE otherwise.

Examples

Run this code
FILE.R <- tempfile(fileext = ".R")
this.path:::.writeCode({
    this.path:::.withAutoprint({
        this.path::from.shell()
        this.path::is.main()
    }, spaced = TRUE, verbose = FALSE,
       prompt.echo = "FILE.R> ", continue.echo = "FILE.R+ ")
}, FILE.R)

this.path:::.Rscript(
    c("--default-packages=NULL", "--no-save", FILE.R),
    show.command = FALSE,
    show.output.on.console = TRUE
)

source(FILE.R, verbose = FALSE)

this.path:::.Rscript(
    c(
        "--default-packages=NULL", "--no-save",
        "-e", "cat(\"\n> this.path::from.shell()\\n\")",
        "-e", "this.path::from.shell()",
        "-e", "cat(\"\n> this.path::is.main()\\n\")",
        "-e", "this.path::is.main()",
        "-e", "cat(\"\n> source(commandArgs(trailingOnly = TRUE))\\n\")",
        "-e", "source(commandArgs(trailingOnly = TRUE))", FILE.R
    ),
    show.command = FALSE,
    show.output.on.console = TRUE
)

unlink(FILE.R)

Run the code above in your browser using DataLab