用於讀取多個檔案的 Bash 腳本

用於讀取多個檔案的 Bash 腳本

我有多個 R 腳本需要讀取(最多 3 個,即 tr1.R、tr2.R、tr3.R)。
下面給出了讀取單一腳本的bash腳本

#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M 
#PBS -m e
module load R/4.0
Rscript ~/tr1.R

我按照建議嘗試了以下操作@cas

#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M 
#PBS -m e
module load R/4.0
**Rscript ~/tr"$i".R**

此外,作業是使用提交的

for i in {1..3} ; do
  qsub -o "default.$i.out" -e "errorfile$i" -v i script.sh
done

這個無法讀取Rscript ~/tr"$i".R

答案1

這又快又髒:

#!/bin/bash

echo -e "Printing script.......\n"

y=0
for (( y=0; y <= 9; y++ ))
do
   echo "file tr$y.R contents: "
   cat tr$y.R
   echo ""   
done

答案2

在 R 中像這樣解決這個問題怎麼樣?

組合.R:

source (tr1.R)
source (tr2.R)
source (tr3.R)

或者像這樣。

組合.R:

for (i in c(1:9)) {
    filename <- paste ("tr", i, ".R", sep="")
    if (file.exists (filename)) {
        source (filename)
    }
}

然後你可以加載combined.R

#!/bin/bash
#PBS -l nodes=1:ppn=10,walltime=00:05:00
#PBS -M 
#PBS -m e
module load R/4.0
Rscript ~/combined.R

哦,我現在明白你想並行運行作業。我發布的解決方案不會並行運行作業,但我將在這裡留下答案。也許有人會發現它很有用。也許你可以應用這樣的東西https://www.blasbenito.com/post/02_parallelizing_loops_with_r/或這個https://stackoverflow.com/questions/38318139/run-a-for-loop-in-parallel-in-r

相關內容