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