edit: Sorry, im Titel vergessen. Es geht um ein Bash Script.
Hallo,
obwohl ich mich schon sehr, sehr lange mit Bash Scripten auseinander setze, ist mir noch nie aufgefallen, dass es eine Einschränkung bei globalen Variablen in Schleifen gibt. Oder habe ich irgend etwas verpasst.
Ein Beispiel:
So und genau da klappt es nicht (mehr?). FoundCount wird innerhalb der Schleife sauber hoch gezählt, wenn etwas gefunden wird. Aber nach der Schleife ist es immer 0.Code:#!/bin/bash SDir="/irgend/ein/verzeichnis" FoundCound=0 find "$SDir" -type f -iname "*.txt" | while read -r FFile do IsText=$(grep -i "test" "$FFile") [ -n "$IsText" ] && FoundCount=$((FoundCount+1)) echo -n -e "\t==> $FoundCount\r" done echo "Text gefunden in $FoundCount dateien."
Übersehe ich irgend etwas, oder warum ist der Wert nach der Schleife immer 0? Die Variable ist doch schon vor der Schleife definiert und zählt auch innerhalb der Schleife hoch.
Gruß
Robert
Lesezeichen