env 参数在 system2 中不起作用?
env argument does not work in system2?
我正在尝试 运行 使用 system2
的命令并使用 env
参数设置环境变量,但似乎没有设置。我在 Linux 所以这应该工作 [在帮助文件中它提到 env
有时在 Windows 中不起作用。
有谁知道如何在system32
中设置环境变量?
例如
system2('echo', args='foobar')
# foobar # as expected
system2('echo', args='$X', env="X=foobar")
# # <-- nothing is printed. as if I had just done `echo`
# I expect to see 'foobar' echoed.
# pretty sure the above environment specification is right, but just in case
system2('echo', args='$X', env=c(X='foobar'))
# sh: 1: foobar: not found
# just to show it can work
system('X=foobar; echo $X')
# foobar
我现在只使用 system
作为解决方法,但是 system
帮助文件一直在说明我应该如何使用 system2
。
(如果这是一个错误,我应该在哪里提交它?)
> sessionInfo()
R version 3.2.5 (2016-04-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
[5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
[7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
由于转到 shell 的命令只是 paste(c(env, shQuote(command), args), collapse = " ")
,您可以这样做:
system2("echo", args = "$X", env = c("X=foobar;"))
我正在尝试 运行 使用 system2
的命令并使用 env
参数设置环境变量,但似乎没有设置。我在 Linux 所以这应该工作 [在帮助文件中它提到 env
有时在 Windows 中不起作用。
有谁知道如何在system32
中设置环境变量?
例如
system2('echo', args='foobar')
# foobar # as expected
system2('echo', args='$X', env="X=foobar")
# # <-- nothing is printed. as if I had just done `echo`
# I expect to see 'foobar' echoed.
# pretty sure the above environment specification is right, but just in case
system2('echo', args='$X', env=c(X='foobar'))
# sh: 1: foobar: not found
# just to show it can work
system('X=foobar; echo $X')
# foobar
我现在只使用 system
作为解决方法,但是 system
帮助文件一直在说明我应该如何使用 system2
。
(如果这是一个错误,我应该在哪里提交它?)
> sessionInfo()
R version 3.2.5 (2016-04-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
[5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
[7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
由于转到 shell 的命令只是 paste(c(env, shQuote(command), args), collapse = " ")
,您可以这样做:
system2("echo", args = "$X", env = c("X=foobar;"))