Matrizes não são um recurso encontrado em / bin / sh, então use #!/bin/bash
scp por padrão mostra um progresso dos arquivos transferidos, então eu questiono se você realmente precisa imprimir cada nome de arquivo sozinho.
Seus curingas não estão sendo expandidos porque você os adiciona à matriz com aspas e, em seguida, cita a expansão da matriz no loop for, portanto, os caracteres curinga não são expandidos.
Deixe os caracteres curinga se expandirem quando você os armazenar na matriz e envie todos os nomes de arquivos separadamente como argumentos scp:
#!/bin/bash
files=(
path1/subpath/file.*.ext
path2/subpath2/nowildcard.ext2
path3/subpath3/file3.*.ext3
)
scp -P12345 "${files[@]}" name@host:/permanent/path/
Você pode simplificar ainda mais, omitindo totalmente a matriz e, nesse caso, pode voltar a / bin / sh:
#!/bin/sh
scp -P12345 \
path1/subpath/file.*.ext \
path2/subpath2/nowildcard.ext2 \
path3/subpath3/file3.*.ext3 \
name@host:/permanent/path/