PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gültigkeitsbereich von Variablen?



Linux-Djihad
06.08.09, 16:02
Hallo,

ich habe folgendes Problem. Ich habe ein Array, das ich mit Dateinamen befülle, aber sobald ich das Array später auslesen will ist es leer? Wenn ich das Array unmittelbar nachdem ich es befüllt habe auslese, funktioniert es. Das heißt, dass der Gültigkeitsbereich offensichtlich nicht so weit reicht, aber wie kann ich das Problem lösen?



#!/bin/bash

export SOURCEDIR=.


COUNTER=0
for FILE in $(ls ${SOURCEDIR}); do
cat ${FILE} | \
while read LINE; do
if [[ ${LINE} =~ "#[0-9]{1,4}" ]]; then
echo ${LINE} | awk '{print $1 $4}' >> ${FILE}_match.tmp
fi
done
if [ -f ${FILE}_match.tmp ]; then
FILEARRAY[${COUNTER}]=${FILE}_match.tmp
#Hier wird der Filename eingelesen
let COUNTER=COUNTER+1
fi
done
#Gebe ich hier das Array aus, ist es leer?
for ((I=0;I<COUNTER;I++)) do
echo ${FILEARRAY[${COUNTER}]}

done

marce
06.08.09, 16:26
gerade keine Möglichkeit, es auszuprobieren - das konkrete Beispiel im Code funktioniert oder nicht?

Evtl. suchst Du export...

John W
06.08.09, 17:35
echo ${FILEARRAY[${COUNTER}]}
kann nicht stimmen, versuch mal

echo ${FILEARRAY[${I}]}

Linux-Djihad
07.08.09, 06:07
@John:

Du hast natürlich recht. An diesem Fehler lag es tatsächlich. Da habe ich wohl den Wald vor lauter Bäumen nicht mehr gesehen.