Как выполнить скрипт R, связав его с сценарием оболочки в Linux?

Я пытаюсь отправить задание на кластер. И это делается путем написания сценария sbatch . Задание включает в себя открытие R 3.1.3 и запуск ссылочного сценария R на сервере.

Вот сценарий оболочки, который я написал:

 #!/bin/bash #SBATCH --account=810639 #SBATCH --time=1200 #SBATCH --mem-per-cpu=4096 #SBATCH --ntasks=1 #SBATCH --constraint=normalmem #SBATCH --output=output_%j.txt #SBATCH --error=error_output_%j.txt #SBATCH --job-name=AggrigatePIXEL #SBATCH --partition=ESG_Std #SBATCH --mail-type=FAIL #SBATCH --mail-user=tewodros.yate@wur.nl # print date and time module load R/3.1.3 module load geos/gcc/64/3.4.2 module load netcdf/gcc/64/4.3.3 module load gdal/gcc/64/1.11.1 source('AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R') 

Когда я пытаюсь запустить сценарий оболочки (сохраненный как yate.sh), он вызывает следующее сообщение об ошибке:

 ./yate.sh: line 20: syntax error near unexpected token 'AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R' ./yate.sh: line 20: source('AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R') 

Я знаю, что проблема связана с открытием и исполнением скрипта .R, который требует сначала запустить программу R. Может ли кто-нибудь помочь мне в том, как я могу проинструктировать об этом в сценарии оболочки?

2 Solutions collect form web for “Как выполнить скрипт R, связав его с сценарием оболочки в Linux?”

Я не знаком с R, но ваш скрипт пытается запустить скрипт bash, а не R-скрипт. Измените свою первую строку на #!/usr/bin/Rscript или, возможно, #!/usr/bin/env Rscript . Возможно, вам придется изменить путь к тому месту, где R находится в вашей системе.

Согласно http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html он должен начинаться следующим образом:

 #! /path/to/Rscript --vanilla --default-packages=utils args <- commandArgs(TRUE) res <- try(install.packages(args)) if(inherits(res, "try-error")) q(status=1) else q()` 

Вместо source () запускается с Rscript:

 Rscript AggrigatePIXEL_Forecast_easyVerfication_SERVERversion.R 
  • Как использовать awk для исправления и унификации поврежденного файла с несколькими столбцами и строками?
  • Замените длинную строку командой sed: слишком длинная ошибка списка аргументов
  • пытаясь написать простой скрипт diff, чтобы сравнить 2 файла, а затем mv их в каталог
  • строковые манипуляции без awk или sed
  • автоматическое удаление записей меню fluxbox
  • Помогите понять команду cut в скрипте
  • Как запустить скрипт bash при аутентификации ssh?
  • Подавлять предупреждения от MySQL в сценарии оболочки, но допускать ошибки
  • Как вводить нажатия клавиш через скрипт оболочки?
  • Используя ; или && с помощью $ @
  • Как играть простые заметки, такие как звук ding-dang в терминале
  • Interesting Posts

    Как разбить большой файл на несколько меньших на основе значения в текстовом столбце?

    Окрашивание выхода `cat`?

    печать на «Один единственный сервер CUPS» не может найти очереди, если «ServerName» является CNAME

    Поиск дубликатов блоков текста в файле с использованием сценария оболочки

    Не удается удалить избыточные разделы

    Количество экранов X, соответствующих количеству разделов «Экран» в файле xorg.conf для конфигурации с несколькими мониторами

    Аппаратное ускорение видео в VLC

    Как запустить различные алгоритмы управления перегрузками в FEDORA 17 ..?

    Передача данных на последовательный порт через экран

    sed и многострочная замена

    Преобразуйте столбец csv в awk, указав пустые поля

    Как получить качественное шифрование на диске Debian после установки?

    Есть ли система репозитория сообщества Arch для Debian?

    Как использовать lockstat.txt на Ubuntu 12.04?

    Способы оптимизации производительности в трубопроводах по сети (RSH и SSH)

    Linux и Unix - лучшая ОС в мире.