O Bash não suporta matrizes aninhadas ou quaisquer outras estruturas de dados complicadas.
Como o número de argumentos é conhecido, você pode criar duas matrizes, uma para cada argumento:
#!/bin/bash
samples=(
'$(call list_samples,AON_9,NT_1,SC_17)'
'$(call list_samples,AON_10,NT_2,SC_18)'
'$(call list_samples,AON_11,NT_3,SC_19)'
'$(call list_samples,AON_12,NT_4,SC_20)'
'$(call list_samples,AON_13,NT_5,SC_21)'
)
gff=(
/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me1.gff
/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me2.gff
/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me3.gff
/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me4.gff
/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me5.gff
)
for (( idx=0; idx<${#samples[@]}; ++idx )) ; do
make -f make_gene_read_count.mk -n SAMPLES_OUT="${samples[idx]}" GFF="${gff[idx]}"
done