Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用GNU parallel将带有参数的shell脚本并行化?_Bash_Matlab_Terminal_Parallel Processing - Fatal编程技术网

Bash 如何使用GNU parallel将带有参数的shell脚本并行化?

Bash 如何使用GNU parallel将带有参数的shell脚本并行化?,bash,matlab,terminal,parallel-processing,Bash,Matlab,Terminal,Parallel Processing,我不熟悉bash脚本。我有一个shell脚本,通过终端在Matlab中运行多个纵向图像处理函数。我想在终端中并行化这个过程 以下是它如何运行的简要示例: ./script.sh *.nii -surface -m /Applications/MATLAB_R2018b.app/bin/matlab *.nii是指在不同时间(即subject1img1 subject1img2 subject3img3)拍摄的单个对象的图像。在我的案例中,每个主题有3张图片。因此,在每次运行中,脚本都会遍历单个

我不熟悉bash脚本。我有一个shell脚本,通过终端在Matlab中运行多个纵向图像处理函数。我想在终端中并行化这个过程

以下是它如何运行的简要示例:

./script.sh *.nii -surface -m /Applications/MATLAB_R2018b.app/bin/matlab
*.nii
是指在不同时间(即subject1img1 subject1img2 subject3img3)拍摄的单个对象的图像。在我的案例中,每个主题有3张图片。因此,在每次运行中,脚本都会遍历单个主题的所有图像


我想并行化这个过程,这样我就可以同时为多个主题运行这个脚本。通过阅读GNU并行与我的小经验,我无法找出我需要写的代码,使它发生。如果有人有任何建议,我将不胜感激。

您可以在后台使用for循环启动它们,如下所示:

for f in *.nii
do
  ./script.sh "$f" -surface -m /Applications/MATLAB_R2018b.app/bin/matlab &
done

欢迎来到SO。更新您的问题以满足..的标准。所以不是一个“我们做你的编码”为您的网站。所以,请在您尝试编写的代码和失败的代码上显示您的努力。分类检查结束。。并完成巡演;-)你好,谢谢。所以我尝试了这个方法,并且考虑到我希望在每次迭代中都有一对文件,我使用了两个{}{}。但是看起来,尽管我将parallel的最大作业数定义为3,它打开MATLAB的次数不是3倍,而是文件对数的倍(本例中为10)。我不知道该怎么办,因为它会使我的系统过载。不管怎样,有没有办法告诉我们,在任何时候都有3份工作?这是我的代码:parallel--jobs 3./cat_batch_long.sh{}{}-surface-m/Applications/MATLAB_R2018b.app/bin/MATLAB::::*.nii
parallel ./script.sh {} -surface -m /Applications/MATLAB_R2018b.app/bin/matlab ::: *.nii