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