我是bash脚本的新手。我有一个Shell脚本,该脚本运行多个功能以通过终端在Matlab中进行纵向图像处理。我想在终端中并行处理。
以下是其运行方式的简短示例:
./script.sh *.nii -surface -m /Applications/MATLAB_R2018b.app/bin/matlab
*.nii
是指在不同时间从单个对象拍摄的图像(即subj1img1 subj1img2 subj3img3)。在我的情况下,每个主题有3张图像。因此,在每次运行中,脚本都会遍历单个主题的所有图像。
我想并行化此过程,以便可以同时针对多个主题运行此脚本。以我的少量经验并行阅读GNU,我无法弄清实现该过程所需编写的代码。如果有人有任何建议,我将不胜感激。
答案 0 :(得分:1)
您可以使用&在for循环中在后台启动它们,如下所示:
for f in *.nii
do
./script.sh "$f" -surface -m /Applications/MATLAB_R2018b.app/bin/matlab &
done
答案 1 :(得分:1)
parallel ./script.sh {} -surface -m /Applications/MATLAB_R2018b.app/bin/matlab ::: *.nii