Я пытаюсь запустить команду с использованием system2
и установить переменную среды с помощью аргумента env
, но она не установлена. Я на Linux, поэтому это должно работать [в файле справки он упоминает, что env
иногда не работает в Windows].env аргумент не работает в системе2?
Кто-нибудь знает, как установить переменные среды в system32
?
E.g.
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
HelpFile продолжает идти на о том, как я должен использовать 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
Как насчет 'системы2 (» echo ", args =" $ X ", env = c (" X = foobar; "))'? Команда, которая отправляется в оболочку, это просто 'paste (c (env, shQuote (команда), args), collapse =" ")'. –
Да! Благодаря! Файл справки просто говорит «вектор символов строк« name = value », поэтому я предположил, что точка с запятой не нужна. Пожалуйста, напишите как ответ, я не мог найти никаких других вопросов, связанных с этим. –
Немного нерешительный об этом ответе, хотя я не уверен, почему 'X = foobar echo $ X' не работает (из' system' или 'system2'). Также не уверен, что так используется аргумент 'env'. Возможно, кто-то еще в курсе может просвещать ... –