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
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