Вы выполняете mapfile
в подоболочке, и назначенная переменная ${MAPFILE[@]}
недоступна из родительского процесса.
Пожалуйста, попробуйте что-то вроде:
cat list.txt | ( mapfile -t; echo "${MAPFILE[@]:0:2}" ) | xargs join -11 -21 -a1 -a2 -o1.1,1.2,2.2 -e0 > countmatrix.txt
Учитывая, что имена файлов, определенные в list.txt
, содержат пробелы и / или другие специальные символы, будет безопаснее сказать:
cat list.txt | ( mapfile -t; printf "%s\0" "${MAPFILE[@]:0:2}" ) | xargs -0 join -11 -21 -a1 -a2 -o1.1,1.2,2.2 -e0 > countmatrix.txt