我尝试在 Linux 中运行以下 bash 脚本,但收到一条错误消息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/garuns
运行 R 时,它工作得很好。
答案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 <>
无法运行。