Я создал скрипт, который идентифицирует уникальный набор файлов (из большого списка) и сохраняет пути к файлам как уникальные переменные (например, $ vol1, $ vol2, $ vol3 ... см. Ниже).
for volume in `seq 1 $num_ap_files`
do
bindex=$(cat ../b0_volumes_tmp.txt | head -$volume | tail -1)
eval 'vol'${volume}=$(cat ../all_volumes.txt | head -$bindex | tail -1)
done
Я хотел бы объединить переменные в одну строковую переменную для использования в качестве входных данных для отдельной программы командной строки.Поскольку количество томов может отличаться - кажется наиболее подходящим создать цикл следующего характера (определите, где у меня возникли проблемы):
??? files=$vol1
for i in `seq 2 $num_ap_files
do
??? eval files=${files}" $vol"${i)
done
Я пробовал несколько различных вариантов здесьиспользуя файлы + =, функцию eval и т. д. и продолжайте получать сообщение об ошибке: -bash: vol0001.nii.gz: команда не найдена.Это можно обойти?Имена файлов должны быть в строковом формате, чтобы их можно было использовать на последующих этапах обработки.
Спасибо, Дэвид