Shell Variable auserhalb einer Schleife verwenden

Ragna_44

Grünschnabel
Da sich die anderen Probleme bei mir durch Veränderung des Codes erledigt haben. Tritt aber nun vollgendes auf.
Aus der Datei neuedateinamen.txt und altedateinamen.txt lese ich die einzelnen Zeilen aus.
Nebenher lasse ich allerdings einen Zähler mitlaufen.
Jedoch wird bei der Ausgabe des Zählers nach dem Sprung aus der zweiten Schleife nicht der aktuelle Zählstand sondern 0 ausgegeben.
Hat jemand eine Erklärung dafür?

declare -i zaehler=0
cat neuedateinamen.txt | while read line
do
echo $zaehler
cat altedateinamen.txt | while read lines
do
zaehler= `expr $zaehler + 1`
done
done
 
Zuletzt bearbeitet:
Hi,

ich denke ich hab dafür eine Erklärung.
In der unten stehenden Zeile startest du durch das cat einen neuen Unterprozess.
Alle Variablen die in dem Unterprozess laufen sind nach dem Ende des Prozesses leider nicht mehr vorhanden
Code:
cat neuedateinamen.txt | while read line

Probier mal den leicht umgebauten Code:

Code:
declare -i zaehler=0
while read line
do
  echo $zaehler
  while read lines
  do
    zaehler= `expr $zaehler + 1`
  done < altedateinamen.txt
done < neuedateinamen.txt
 
Da keine Antwort dazu gegeben wurde ob es klappt, mach ich das mal, auch wenn dei Beitrag doch schon etwas älter ist.
Die Syntax kannte ich bisher noch nicht, aber es funktioniert super!
Danke für den Beitrag olqs

Gruß hTm
 
Zurück