Проблема в том, что parallel
хочет, чтобы ввод был разделен символами новой строки, но когда вы используете echo
, он разделяется пробелами.Чтобы напечатать некоторые слова, разделенные символами новой строки, вы можете попробовать один из этих
echo one two three | tr ' ' '\n' # in case your input can not be controlled by you
printf '%s\n' one two three # if you can control the words eg if you have an array
Так что вам, вероятно, следует сделать это так:
printf '%s\n' "${ids[@]}" | parallel --jobs 28 recon-all -s {.} -all -qcache
Не забудьте заключать в кавычки подстановки массива и переменные в целом, чтобы предотвратить случайное разделение слов и другие побочные эффекты, если ваши значения содержат специальные символы.