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 回答