Я хочу перечислить указанные файлы (файлы, загруженные вчера) с амазонки S3. Затем я хочу зациклиться на этом списке, и для каждого отдельного элемента списка я хочу разархивировать файл.Bash, issue on for loop
Мой код:
for file in s3cmd ls s3://my-bucket/`date +%Y%m%d -d "1 day ago"`*
do s3cmd get $file
arrIN=(${file//my-bucket\//})
gunzip ${arrIN[1]}
done
так basicaly arrIN = ($ {файл // мой Ведро //}); взрывает мою строку и позволяет мне получить имя файла, который я хочу разархивировать.
Вещь, файл скачиваете, но ничего не будучи разархивировать, поэтому я попытался:
for file in s3cmd ls s3://my-bucket/`date +%Y%m%d -d "1 day ago"`*
do s3cmd get $file
echo test1
done
Файлы загружаются, но ничего не является эхо. Loop работает только для первой линии ...
'$ file' устанавливается в' s3smd', затем 'ls', затем все, что оценивается в следующем выражении. Это, вероятно, не то, что вы хотите. – choroba
Почему вы используете 'ls' там, кажется лишним. Попробуйте 'echo s3: // my-bucket/$ (date +% Y% m% d -d" 1 день назад ") *' чтобы увидеть, что я имею в виду. – cdarke