Как создать выходные файлы с разными именами с помощью Shell? - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть R-скрипт (abc.R):

#!/usr/bin/env Rscript

print("HELLO")

И пакетный скрипт, содержащий R-скрипт (example.sh):

#!/bin/bash
module load Rstats
module load RstatsPackages


Rscript /home1/R_scripts/abc.R   > "result.txt"

И другой пакетный скрипт(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

Этот скрипт вызывает вышеуказанный скрипт десять раз, так что мой Rscript будет выполняться 10 раз.Он работает 10 раз, но генерирует только один файл result.txt.Однако мне нужно несколько файлов результатов, таких как result1.txt, result2.txt, result3.txt и т. Д.

1 Ответ

0 голосов
/ 23 февраля 2019

Поскольку номер итерации ($i) передается в качестве аргумента example.sh из multiple.sh, то же самое можно использовать для создания файла за одну итерацию.Для этого измените последнюю строку example.sh на:

Rscript /home1/R_scripts/abc.R   > "result${1}.txt"
...