3

私は次のように引数として取る3つの日付(それ以上になる可能性があります)を持っています:

DATE_0="01-JAN-11"
DATE_1="01-JAN-12"
DATE_2="01-JAN-13"

ここで、日付をループして、_ の後に別の変数で値を追加したいと考えています。

for (( i=0; i<3; i++ ))
do
    echo $DATE_$i
done

i=0 の場合は 01-JAN-11 を出力し、i=1 の場合は 01-JAN-12 などを出力します。誰でも私を助けることができますか??

4

1 に答える 1

3

間接パラメータ展開を使用できます

for ((i=0; i<3; i++)); do
    var=DATE_$i
    echo ${!var}
done

しかし、配列はより良い解決策です

DATES=(01-JAN-11 01-JAN-12 01-JAN-13)
for d in "${DATES[@]}"; do
   echo $d
done

また

for ((i=0; i<${#DATES[@]}; i++)); do
   echo ${DATES[i]}
done
于 2013-02-27T22:22:28.770 に答える