Как распараллелить сценарий оболочки с аргументами, использующими параллельную GNU? - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок в скриптах bash.У меня есть сценарий оболочки, который выполняет несколько функций для обработки продольного изображения в Matlab через терминал.Я хотел бы распараллелить процесс в терминале.

Вот краткий пример того, как он выполняется:

./script.sh *.nii -surface -m /Applications/MATLAB_R2018b.app/bin/matlab

*.nii относится к изображениям одного субъекта, снятым в разное время(т.е. subj1img1 subj1img2 subj3img3).В моем случае есть 3 изображения на предмет.Таким образом, при каждом запуске сценарий проходит через все изображения одного субъекта.

Я хотел бы распараллелить этот процесс, чтобы можно было запустить этот сценарий одновременно для нескольких объектов.Читая GNU параллельно с моим небольшим опытом, я не смог понять код, который мне нужно написать, чтобы это произошло.Буду очень признателен, если у кого-нибудь есть какие-либо предложения.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019
parallel ./script.sh {} -surface -m /Applications/MATLAB_R2018b.app/bin/matlab ::: *.nii 
0 голосов
/ 19 февраля 2019

вы можете запустить их в фоновом режиме, используя & в цикле for, как показано ниже:

for f in *.nii
do
  ./script.sh "$f" -surface -m /Applications/MATLAB_R2018b.app/bin/matlab &
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...