Jde vytvorit shell promennou s pomennym jmenem?

Tom Hudec Tom na ABBA.cz
Středa Březen 20 04:58:06 CET 2002


Ing. Vlastimil Pospíchal wrote:
>>>Moje predstava je takova, ukazu na trivialnim prikladu:
>>>
>>>NUM=$1
>>>
>>>SOURCE${1}=20
>>>
>>>Jde vubec vytvorit promennou se jmenem, ktere sestavim az za behu
>>>skriptu? Jak se to dela? Nevim, kde to v dokumetaci hledat.
>>>
>>>Pavel
>>>
>>Obvykle lze vystacit s promennymi typu pole:
>>
>>NUM=$1
>>SOURCE[$NUM]=20
>>
>>echo $SOURCE[$NUM]
>>
>>vice napr. 'man bash' ;)
>>
>>K.
>>
> 
> man bash hovoří o trochu jiné konstrukci, toto by nezbaštil.
> Když už, tak
>    echo ${SOURCE[$NUM]}
> kde $NUM musí být nezáporné číslo.
> 
> Jinak požadované funkce uložení se dá docílit
>    eval SOURCE$NUM=20
> 
> Může tak vzniknout docela hezké asociativní pole, protože $NUM nemusí
> být číslo. Nepřišel jsem ale na to, jak jednotlivé položky tohoto pole
> zpřístupnit, pokud neznám indexy (kromě "echo $SOURCE<tab>")

A co třeba takhle:
$ POLE1="první prvek"
$ POLE2="2.  prvek"
$ POLEdalsi="další prvek"
$ POLEjiny=" ... jiný"
$ for P in ${!POLE*}; do eval echo \"$P=\'\${$P}\'\"; done
POLE1='první prvek'
POLE2='2.  prvek'
POLEdalsi='další prvek'
POLEjiny=' ... jiný'


-- 
Tom Hudec <Tom(at)ABBA.cz>, editor of Tom's ABBA pages http://ABBA.cz/

   .''`.  The box said Windows, NT or better, so I installed Linux. :-)
  : :' :
  `. `'   Debian GNU/Linux  http://www.debian.org/  http://www.debian.cz/
    `-    The Perfect OS - the most software, the most people



Další informace o konferenci Linux