I am not sure I understand your question. Do you mean something like
edd@max:~$ which r
/usr/local/bin/r
edd@max:~$
You can compare the result of which
against the empty string as nothing comes back when you ask for a non-existing program.
edd@max:~$ which s # we know we don't have this
edd@max:~$
You can then use the result of which r
to check for, say, the version:
edd@max:~$ `which r` --version
r ('littler') version 0.2.2
git revision 8df31e5 as of Thu Jan 29 17:43:21 2015 -0800
built at 19:48:17 on Jan 29 2015
using GNU R Version 3.1.2 (2014-10-31)
Copyright (C) 2006 - 2014 Jeffrey Horner and Dirk Eddelbuettel
r is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License. For more information about
these matters, see http://www.gnu.org/copyleft/gpl.html.
edd@max:~$
Edit: As you seem confused about interactive()
true or false, consider r --help
:
edd@max:~$ r --help
Usage: r [options] [-|file]
Launch GNU R to execute the R commands supplied in the specified file, or
from stdin if '-' is used. Suitable for so-called shebang '#!/'-line scripts.
Options:
-h, --help Give this help list
--usage Give a short usage message
-V, --version Show the version number
-v, --vanilla Pass the '--vanilla' option to R
-t, --rtemp Use per-session temporary directory as R does
-i, --interactive Let interactive() return 'true' rather than 'false'
-q, --quick Skip autoload / delayed assign of default libraries
-p, --verbose Print the value of expressions to the console
-l, --packages list Load the R packages from the comma-separated 'list'
-d, --datastdin Prepend command to load 'X' as csv from stdin
-e, --eval expr Let R evaluate 'expr'
edd@max:~$
and
edd@max:~$ r -e'print(interactive())'
[1] FALSE
edd@max:~$ r -i -e'print(interactive())'
[1] TRUE
edd@max:~$
but that is setting it as opposed to querying it.