kamome
01-03-2004, 15:24
Hi, in einem script veraendere ich innerhalb einer while-Schleife eine Variable ($pntcnt), die als index fuer arrays dient. Nun muss ich aber auch ausserhalb der Schleife auf diese Variable zugreifen - wie man sieht gibt es da ein Problem, der Wert der Variablen betraegt wieder 0 (script und output jeweils letzte Zeile)... warum? Laeuft eine Schleife in einer subshell? Und wie komme ich dann an die Variable ran? Muss ich ueber eine text-Datei exportieren?
das script:
#/bin/bash
declare -a xarr
declare -a yarr
pntcnt=0
cat data |while read x y
do
let "pntcnt += 1"
xarr[${pntcnt}]=${x}
echo -n x[${pntcnt}]=${xarr[pntcnt]}" "
yarr[${pntcnt}]=${y}
echo y[${pntcnt}]=${yarr[pntcnt]}
done
echo ${pntcnt}
output:
x[1]=89 y[1]=58
x[2]=91 y[2]=45
x[3]=78 y[3]=100
x[4]=54 y[4]=103
0
(mit einem export innerhalb der Schleife klappt es auch nicht - daher meine Vermutung mit der subshell; mit "source arrtst" erhalte ich den gleichen output)
Kann mir jemand weiterhelfen?
Vielen Dank im Voraus
cu
kamome
das script:
#/bin/bash
declare -a xarr
declare -a yarr
pntcnt=0
cat data |while read x y
do
let "pntcnt += 1"
xarr[${pntcnt}]=${x}
echo -n x[${pntcnt}]=${xarr[pntcnt]}" "
yarr[${pntcnt}]=${y}
echo y[${pntcnt}]=${yarr[pntcnt]}
done
echo ${pntcnt}
output:
x[1]=89 y[1]=58
x[2]=91 y[2]=45
x[3]=78 y[3]=100
x[4]=54 y[4]=103
0
(mit einem export innerhalb der Schleife klappt es auch nicht - daher meine Vermutung mit der subshell; mit "source arrtst" erhalte ich den gleichen output)
Kann mir jemand weiterhelfen?
Vielen Dank im Voraus
cu
kamome