Portál AbcLinuxu, 1. června 2025 05:28
$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.