bash-скрипт - ошибка «Rscript: команда не найдена»

bash-скрипт - ошибка «Rscript: команда не найдена»

У меня есть следующий скрипт bash, пытаюсь запустить его в Linux, но получаю сообщение об ошибке line 31: Rscript: command not found. Можете ли вы дать мне совет, где я ошибаюсь?

#!/bin/bash
#PBS -S /bin/bash
#PBS -N garunsmodel
#PBS -l mem=10g
#PBS -l walltime=02:00:00
#PBS -A improvingherds
#PBS -m ae


nodeDir=`mktemp -d /tmp/phuong.XXXXX`

cp -r /group/dairy/phuongho/garuns $nodeDir

cd $nodeDir

cd garuns
module load gcc vle // this is to load vle platform
rm -rf out
mkdir out

#In garuns.vpz. The output file path has to be changed.
#to an absolute path that's available on the node the script is running.

XXX=`pwd`
sed -i "s|/group/dairy/phuongho/garuns/out|$XXX/out/|" exp/garuns.vpz
Rscript  R/repetability.R

DATE=`date +%Y%m%d-%H%M%S`
mkdir "/group/dairy/phuongho/job.$DATE"

cp -r out  "/group/dairy/phuongho/job.$DATE"

Когда я попытался вручную получить доступ к tmp/phuong.XXXXX/garunsR, все прошло нормально.

решение1

Если R уже установлен, может ли быть так, что PATHпеременная выбирает не тот RScript? Проверьте сwhich RScript

В этом случае попробуйте export PATH=/path/to/alternate/r/bin:$PATH или попробуйте применить метод полного перебора, указав абсолютный путь при ссылке RScript, например ~/R-3.2.5_patched/bin/RScript/R/repetability.R

решение2

Вам необходимо установить R

Например, в Ubuntu:

sudo apt-get install r-base-core

Тогда Rscriptкоманда будет распознана в командной строке.

Я сделал это, и это сработало, но учтите, что установка была довольно массивной с сотнями установленных зависимостей. Установка заняла несколько минут.

решение3

Это похоже на скрипт, который отправляется в вычислительный кластер через что-то вроде SLURM. Вам следует поговорить с администратором вашей системы и спросить, установлен ли R на кластере, и если да, как включить доступ к нему в вашем скрипте.

На кластерах, к которым у меня есть доступ, некоторое программное обеспечение необходимо загрузить с помощью module load somesoftware/versionкоманды, которая обновляет/устанавливает переменные среды, необходимые для запуска программного обеспечения.

решение4

Я получил то же самое сообщение об ошибке, но по другой причине. Выкладываю его здесь, так как люди будут попадать сюда, как и я.

Проверьте, что ваша первая строка — #!/bin/bash(это не ваша проблема), а не #!/bin/sh, иначе некоторые команды, например , module load <>не будут выполняться.

Связанный контент