LINUX.ORG.RU

Как сделать перебор переменной в баше?


0

0

Сории за может быть глупый вопрос!
В файле есть штук 20 переменных типа f1 f2 f3 f4 .. f20 (каждая из четырех циферок)
Хочеться сделать цикл который переберет все эти переменные по порядковому номеру и сделает так:

echo $f1
echo $f2
echo $f3
echo $f4
echo $f20

Спасибо!

for i in `seq 1 20` ; do eval echo \$f$i ; done

вот так разыменовывает fN и выводит на экран :)

Ant0
()
Ответ на: комментарий от hatefu1_dead

>>в данном случае лучше использовать массивы.
чем это лучше?

а хуже вот чем: более тормознуто, сильно bash-е зависимо (не POSIX)

Ant0
()
Ответ на: комментарий от Ant0

Python runs everywhere

Python is available for all major operating systems: Windows, Linux/Unix, OS/2, Mac, Amiga, among others. There are even versions that runs on .NET, the Java virtual machine, and Nokia Series 60 cell phones. You'll be pleased to know that the same source code will run unchanged across all implementations.

Your favorite system isn't listed here? It may still support Python if there's a C compiler for it. Ask around on news:comp.lang.python - or just try compiling Python yourself.

anonymous
()
Ответ на: комментарий от anonymous

>Your favorite system isn't listed here?
ога, есть тама - Linux назваеться ;)
только у него обчно 4М флешки, 8M памяти и проц на уровне 200Мгц

влезет туда питон? ;)
а как ПОЛЗАТЬ при этом будет? ;)

Ant0
()

Самый главный совет забыли:

for i in ${!f*} ; do ...

DonkeyHot ★★★★★
()

А почему бы вместо такой кучи переменных не создать один простенький ассоциативный массив? Доступ к нему очень прост:

myarray["f1"]=... myarray["f2"]=${myarray["f1"]}

и в цикле:

for index in myarray; do echo " tra-ta-ta ${myarray[$index]} tra-ta-ta" done

anonymous
()
Ответ на: комментарий от anonymous

потому что это нестандартно. И нет никакого выигрыша от этого.

Ant0 уже написал как правильно

dilmah ★★★★★
()
Ответ на: комментарий от ale

Всем спасибо!
Первый вариант отлично подошел!
Вариант с seq я и в книжках видел, но он не прошел, баш не нашел такой команды.
Железяка под Санями, политикой запрещено держать на ней любые средсва разработки. Поэтому питон перл и с тоже в пролете.



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