Если второй аргумент указывает на файл со списком файлов для загрузки, то должно работать следующее:
#!/bin/bash
BucketName=$1
FileName=$2
while IFS= read -r file;
#while IFS= read -r FileName
do
aws s3 cp s3://$BucketName/$file .
done < $FileName
Где вторым аргументом является файл типа:
file1.csv
file2.csv
file3.csv
Вывод:
$ bash s3bash.sh mybucket s3files.txt
download: s3://mybucket/file1.csv to ./file1.csv
download: s3://mybucket/file2.csv to ./file2.csv
download: s3://mybucket/file3.csv to ./file3.csv
Если вы передаете список файлов в виде строки с разделителями, вместо файла - проверьте этот ответ: { ссылка }