我目前正在尝试通过 shell 脚本运行 R 脚本。
这里是 R 脚本:
test = rnorm(1:100, 1000)
write.csv(test, 'test.csv')
这里是调用 R 的 bash 脚本:
#!/bin/bash -l
#SBATCH --partition=compute
#SBATCH --job-name=test
#SBATCH --mail-type=ALL
#SBATCH [email protected]
#SBATCH --time=00:10:00
#SBATCH --nodes=1
#SBATCH --tasks-per-node=12
#SBATCH --account=myaccount
module purge
module load R
${HOME}/test.R
我想我做的一切都正确,但输出返回以下错误:
/mydirectory/test.R: line 3: syntax error near unexpected token `('
/mydirectory/test.R: line 3: `test = rnorm(1:100, 1000)'
为什么我会收到此错误?
问题是 shell 试图
${HOME}/test.R
用一个bash
解释器运行你,它没有试图理解第 3 行的语法。R
明确地使用你想要test.R
运行的解释器。Rscript
将您的解释器设置test.R
为通过这种方式使用解释器集,您现在可以从 shell 脚本运行它
请记住,登录
R
shell 并在其上运行命令,并在 shell 脚本中尝试它是不一样的,R
shell 与 shell 不同bash
。R
您需要使用这种方式来运行命令,而无需直接从命令行登录,并在 shell 脚本中使用相同的方法。