Aqui está uma maneira de fazer isso, na qual a matriz de argumentos de linha de comando é construída iterativamente:
#!/bin/bash
args=(Channels 30 60 16)
i=0
for chan in meet george jetson his boy elroy daughter judy; do
((++i))
args+=("$chan" $i 1 "" $i 25 30 30)
done
dialog --form "${args[@]}"
É claro que isso poderia ter usado a mesma técnica de array e iteração de CHANNELS
do seu original. (Pessoalmente, acho que eu tomaria os nomes dos canais das opções da linha de comando para o script, caso em que você poderia escrever for chan; do
.)