我有兴趣使用脚本分析 50 个不同的数据集,并将 50 个分析的输出分别保存在 50 个不同的相应目录中。为了避免手动执行此操作,如何以自动化方式(即以“批处理模式”执行此操作)完成?
要运行该脚本,需要使用一组可执行文件,所有这些文件都位于名为“Programmes”的目录中,并且还需要一个输入参数文件。每个数据集实际上由两个文件组成(infile.ped 和 infile.map)。通过我之前问过的一个问题(如何将循环命令每次迭代的输出保存到另一个新文件夹?),我了解到,如果我想对给定的单个数据集运行 50 次重复运行,一种解决方案是:
for dir in dir{01..50}; do
mkdir -p "$dir" &&
ln -sf ../{script.sh,infile.{ped,map},INPUT_PARAMETERS_FILE,PROGRAMMES} "$dir" &&
(cd "$dir" && exec bash ./script.sh infile)
done
我的问题是,这样的循环如何适应这种情况,即目标不是自动分析单个数据集,而是自动分析例如 50 个不同的数据集 (infile_1.ped 和 infile_1.map; infile_2.ped 和 infile_2.map; ...; infile_50.ped 和 infile_50.map)。