我有一个R脚本(abc.R):
#!/usr/bin/env Rscript
print("HELLO")
Run Code Online (Sandbox Code Playgroud)
还有一个包含R脚本(example.sh)的批处理脚本:
#!/bin/bash
module load Rstats
module load RstatsPackages
Rscript /home1/R_scripts/abc.R > "result.txt"
Run Code Online (Sandbox Code Playgroud)
还有另一个批处理脚本(multiple.sh),它调用上述脚本:
#!/bin/sh
for((i=1;i<=10;i++))
do
sbatch -p normal -t 4:00:00 -N 1 -n 4 example.sh $i
done
sh multiple.sh
Run Code Online (Sandbox Code Playgroud)
该脚本调用上述脚本十次,因此我的Rscript将运行十次。它运行10次,但仅生成一个result.txt。不过,我想多个结果文件,如result1.txt,result2.txt,result3.txt等等。
由于迭代编号($i)作为参数传递给example.shfrom multiple.sh,因此可以将其用于每次迭代创建文件。为此,将的最后一行更改example.sh为:
Rscript /home1/R_scripts/abc.R > "result${1}.txt"
Run Code Online (Sandbox Code Playgroud)