我想从循环语句中存储变量( $ 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
答案 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[@]}