Portál AbcLinuxu, 30. prosince 2025 07:03
$a="Ahoj"; $b="a"; $c="b" echo $$$c;Tento příklad vypíše "Ahoj". Mě jde o to "$$$c", tj. dosazování jedné proměnné do názvu druhé proměnné. Již zmíněné $$$c v Bashi nefunguje, protože "$$" vypíše PID shelu a zbylé "$c" vypíše prostě "b". Jak to udělat?
bash$ a=ahoj bash$ b=a bash$ c=b bash$ eval eval echo \\$\$$c ahoj bash$hlavne po me prosimte nechtej, abych vysvetloval co a proc to dela. a vubec, kdyby neco, tak to psal nekdo jiny.
Ciastocne riesenie je:
${!b}
co je ekvivalent "$$b", ale neda sa tak riesit "$$$c" bez pouzitia medzikroku (aspon ja neviem akym sposobom to zapisat).
To $$$c by potom bolo treba riesit asi nejako:
a="Ahoj"
b="a"
c="b"
x=${!c}
echo ${!x}
eval "echo \$${!c}"
Ale je to větší čuňárna, než to provést ve dvou krocích.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.