0

我想从循环语句中存储一个变量($random) - 目前只打印循环中的最后一条语句。请注意,我想在循环之外使用这个变量。

#!/usr/bin/env bash

for backup in $(s3cmd ls s3://bucket/ | awk '{ print $2 }')
do
latest=$(s3cmd ls $backup | awk '{ print $2 }'  | sed -n '$p')
random=$(s3cmd ls $latest | shuf | awk '{ print $4 }' | sed -n '1p')
        s3cmd get $random $data_dir >/dev/null 2>&1
done

echo "$random
4

1 回答 1

1

您的要求并不完全清楚,但我认为您是在说您想记录$random在循环执行期间收到的每个值。

declare -a randoms

for backup in $(s3cmd ls s3://bucket/ | awk '{ print $2 }')
do
latest=$(s3cmd ls $backup | awk '{ print $2 }'  | sed -n '$p')
random=$(s3cmd ls $latest | shuf | awk '{ print $4 }' | sed -n '1p')
        s3cmd get $random $data_dir >/dev/null 2>&1
randoms+=( $random )
done

echo ${randoms[@]}
于 2012-08-20T13:50:22.410 回答