divne chovani while v ksh a bash na linuxu
Jan Kurik
kurik na amis.cz
Pondělí Říjen 4 12:53:53 CEST 1999
Dobry den !
mam takovy divny problem s chovanim while v ksh resp. v bash
Nasledujici script :
<SCRIPT>
#!/bin/bash
vstup="1cast\n 2cast\n 3cast"
jazyky=""
platformy=""
zakazka=""
n=1
#for radek in $vstup; do
echo -e $vstup | while read radek ; do
if [ $n -eq 1 ]; then
zakazka=$radek;
echo "zaka=$zakazka"
elif [ $n -eq 2 ]; then
jazyky=$radek
echo "jazyky=$jazyky"
elif [ $n -eq 3 ]; then
platformy=$radek
echo "platformy=$platformy"
break
fi
n=`expr $n + 1`
done
echo "po while zaka=$zakazka"
echo "po while jaz=$jazyky"
echo "po while plat=$platformy"
</SCRIPT>
Vypise :
<OUTPUT>
zaka=1cast
jazyky=2cast
platformy=3cast
po while zaka=
po while jaz=
po while plat=
</OUTPUT>
Pokud zaremuju radek s while a odremuju radek s for, tak je vystup
nasledujici :
<OUTPUT>
zaka=1cast\n
jazyky=2cast\n
platformy=3cast
po while zaka=1cast\n
po while jaz=2cast\n
po while plat=3cast
</OUTPUT>
Ocekaval bych, ze vypis bude stejny jak u while, tak u for, coz je
pravda na platformach SCO, SunOS, HP, ale ne v Linuxovem ksh (bash).
Netusi nekdo proc ?
Diky
--
Jan Kurik <kurik na amis.cz>
Další informace o konferenci Linux