LINUX.ORG.RU

for a in {1..5}; do 
   var${a}="$RANDOM"
done
---
bash: var1=17509: команда не найдена
bash: var2=32432: команда не найдена
bash: var3=29156: команда не найдена
bash: var4=22541: команда не найдена
bash: var5=24053: команда не найдена

с eval

for a in {1..5}; do 
   eval var${a}="$RANDOM"
done
---
echo $var3
28285
Тут становится интересно. Вроде var${a} стандартная конструкция. Почему интерпретируется как команда?
UPD. Туплю) Переменная не объявлена это раз, обращение без $)

Deleted
()
Последнее исправление: medossa (всего исправлений: 1)
Ответ на: комментарий от Deleted
ne-vlezay80@ne-vlezay80:~$ for a in {1..5}
> do
> echo $test$a
> done
1
2
3
4
5

я про это спрашивал, почему значение последней переменной переписавается

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

$test$a это конкатенация двух переменных. Первая не определена, поэтому раскрывается в пустую строку.

iliyap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.