来自循环的Bash数组变量

时间:2012-08-20 13:37:28

标签: arrays bash

我想从循环语句中存储变量( $ 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

1 个答案:

答案 0 :(得分: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[@]}