Jak nahradit "expr substr"
Alexandr Malusek
malusek na hroch.ujf.cas.cz
Pondělí Květen 24 21:57:42 CEST 1999
pali na tmapy.cz (Pavel Lisy) writes:
> Potreboval bych necim nahradit jeden vyraz ve scriptu (bash)
>
> TRIM_PARAM=`expr substr $ACT_PARAM 1 \`expr length $ACT_VOL\``
>
> Problem je v tom, ze potrebuji, aby to behalo i na Solarisu a tam prikaz expr
> nema option substr ani length
> ...
> Podotykam, ze potrebuji co nejvetsi prenositelnost, pouzit co nejzakladnejsi
> unixove prostredky
Ma-li byt skript prenositelny, pak davam (jde-li to) prednost
Korn-shellu. Je kompatibilni s Bourne shellem a z programatorskeho
hlediska je to velmi dobry shell. Na SVR4 systemech (Solaris, ...) je
bezne k dispozici.
#!/bin/ksh
ACT_VOL=12
ACT_PARAM=abcd
typeset -L${#ACT_VOL} TRIM_PARAM=$ACT_PARAM
echo $TRIM_PARAM
V kazdem pripade se vyplati koupit si knihu o programovani v shellu
(napr. v ksh - viz O'Reilly). Pripady, se kterymi se clovek bezne
setka, tam byvaji rozebrany. Navic jsou tam ukazky elegantne napsanych
skriptu. Zminuji se o tom proto, ze nektera reseni uvadena v teto
konferenci sice funguji, ale jsou velmi nehezka a neefektivni.
--
A. Malusek (malusek na ujf.cas.cz)
UJF AV CR
Další informace o konferenci Linux