2013-02-27 3 views
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 

я хочу, когда я = 0, когда он должен печатать 01-JAN-11, когда я = 1, то печать 01-JAN-12 и так далее. Может кто-нибудь мне помочь??

ответ

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 
+0

для ((я = 0; г <3; я ++)); do var = DATE_ $ i echo $ {! var} сделано Это сработало для меня :) спасибо chepner. – user2117346

Смежные вопросы