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 に答える