gnu 与 bash 数组并行

Rel*_*ist 1 bash gnu-parallel bash-array

我尝试使用 GNU 并行freesurfer preproc运行命令 recon-all我有一个 bash 患者列表数组,可以同时运行 8 个专利:

root@4d8896dfec6c:/tmp# echo ${ids[@]}
G001 G002 G003 G004 G005 G006 G007 G008
Run Code Online (Sandbox Code Playgroud)

并尝试使用命令运行:

echo ${ids[@]} | parallel --jobs 28 recon-all -s {.} -all -qcache
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为我想我需要在 ls 表示中使用 bash 数组,例如:

ls ${ids[@]} | parallel --jobs 28 recon-all -s {.} -all -qcache
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Ole*_*nge 5

如果 ids 适合单个命令行:

parallel --jobs 28 recon-all -s {.} -all -qcache ::: "${ids[@]}"
Run Code Online (Sandbox Code Playgroud)

其他如卢卡斯建议:

printf %s\\n "${ids[@]}" | parallel --jobs 28 recon-all -s {.} -all -qcache
Run Code Online (Sandbox Code Playgroud)