Linuxで実行するためにシェルスクリプトにRスクリプトを追加する方法は?

Linuxで実行するためにシェルスクリプトにRスクリプトを追加する方法は?

クラスタで実行するジョブを送信しようとしています。これは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 [email protected]
# 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スクリプトを開いて実行することに関連していることを知っています。誰もがこれをシェルスクリプトに表示するのに役立ちますか?

ベストアンサー1

私はRに慣れていませんが、あなたのスクリプトはRスクリプトではなくbashスクリプトで実行しようとしています。最初の行を#!/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()`

おすすめ記事