Strata hodnoty premennej po while v bash-i
Jirka Kosina
jikos na jikos.cz
Neděle Červen 13 19:39:28 CEST 2004
On Sun, 13 Jun 2004, Tomáš Janoušek wrote:
> > POCET=$((POCET+1))
> POCET=$(($POCET+1))
To neni problem na ktery se tazatel ptal. Problem je, ze ta roura do readu
spusti bohuzel subshell, ze ktereho promennou do parenta samozrejme
nedostanete.
Takze je nutne si tu promennou 'ven' predat bud nejak pres
soubor/pojmenovanou rouru, nebo operace s ni delat jeste v aktualnim
subshellu, tedy neco jako
#!/bin/bash
POCET=0
ls | (while read SUBOR; do
POCET=$(($POCET+1))
echo "$POCET $SUBOR"
done; echo $POCET)
--
JiKos.
Další informace o konferenci Linux