0
我想從亞馬遜S3中列出指定的文件(昨天上傳的文件)。 然後我想在這個列表上循環,並且對於列表中的每個單個元素,我想解壓縮該文件。Bash,for循環問題
我的代碼是:
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 day ago」)*'看看我的意思。 – cdarke