Portál AbcLinuxu, 26. dubna 2024 08:29


Dotaz: BASH - název proměnné z řetězce

13.3.2009 17:57 Michal Komár
BASH - název proměnné z řetězce
Přečteno: 424×
Odpovědět | Admin

Dobrá den?

Lze v Bashi nějakým způsobem volat proměnnou, která je deklarovaná a její název je shodný s řetězcem uloženým v jiné proměnné, kterou známe?

Například mějme:

prom1="neco 2neca 3neca"

prom2="dalsi predchozi treti"

znama=prom2

Já znám jen proměnou znama a vím, že jejím obsahem je nazev jedne z deklarovanych promennych a prave tu potrebuji prochazet cyklem for.

Jak tohoto dosáhnout popřípadě jak to elegantně obejít?

Děkuji za odpověď

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.3.2009 18:02 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: BASH - název proměnné z řetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
man eval
I am always ready to learn although I do not always like to be taught. (W. Churchill)
13.3.2009 18:16 Michal Komár
Rozbalit Rozbalit vše Re: BASH - název proměnné z řetězce

Myslíte eval jako Built-in bashe? Pokusil jsem se přelouskat ten krátký odstavec, ale nějak si z toho nedovedu vyvodit použití. Mohl by jste mi prosím napsat nějakou ukázku. Jsem uplný začátečník.

Děkuji

David Watzke avatar 13.3.2009 22:56 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: BASH - název proměnné z řetězce
eval echo \$$znama
Ale eval není bezpečný používat, určitě je vhodný zůstat u řešení, které popsal Ash.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
13.3.2009 18:16 Ash | skóre: 53
Rozbalit Rozbalit vše Re: BASH - název proměnné z řetězce
Odpovědět | | Sbalit | Link | Blokovat | Admin
from to in ${!znama}; do
  echo "to: $to"
done
eval sucks
13.3.2009 18:18 Michal Komár
Rozbalit Rozbalit vše Re: BASH - název proměnné z řetězce

Mockrát děkuji za rychlou reakci, tohle funguje tak, jak bych si představoval

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.