Источник не работает в сценарии оболочки - PullRequest
0 голосов
/ 05 июня 2018

Мы работаем на сервере Linux, и мне нужно запустить скрипт R в anaconda.

Как задействовать среду anaconda с помощью сценария оболочки.

С помощью командной строки:

$  source anaconda 
$  Rscript <file.R>

работает нормально.

Если anacondaуже задействован следующий .sh отлично работает:

#!/bin/bash
PATH=$PATH:/usr/local/bin/anaconda
echo Rscript ./name.R

Есть ли версия:

#!/bin/bash
PATH=$PATH:/usr/local/bin
echo source anaconda; Rscript ./name.R

Это откроет anconda и запустит скрипт?

MyАнаконда находится в пределах ./anaconda.Я попытался установить это как мой начальный путь.

Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Нам не хватает содержимого файла anaconda.Я думаю, что она создает команду Rscript как псевдоним , поскольку оболочка по умолчанию не расширяет псевдонимы, если оболочка не является интерактивной.Например:

Интерактивно, все хорошо

$ cat > anaconda
alias Rscript='echo this is Rscript:'
$ source ./anaconda
$ Rscript foo bar
this is Rscript: foo bar

Но в скрипте я могу воспроизвести вашу ошибку

$ cat > test.sh
#!/bin/bash
source ./anaconda
Rscript foo bar
$ bash test.sh
test.sh: line 3: Rscript: command not found

Принудительное использование bash:

$ bash -i test.sh
this is Rscript: foo bar

Попробуйте это:

#!/bin/bash
shopt -s expand_aliases
source /path/to/anaconda
Rscript ./name.R
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...