Ich schreibe ein Bash-Skript, das eine while
Schleife verwendet, um über die Zeilen von einem bestimmten Befehl ausgegeben verarbeiten. Ich inkrementiere auch eine Variable (1) für jede gefundene Zeile.Variable inkrementiert in bash while-Schleife auf 0 zurückgesetzt, wenn Schleife beendet
Heres ein Beispiel für den Abschnitt des Skripts in Frage:
#!/bin/bash
count=0
ls | while read f
do
count=$(($count+1))
echo "Count is at ${count}"
done
echo "Found total of ${count} rows"
Im Grunde ist es erhöht die $count
Variable ganz gut, aber dann, wenn ich drucke $count
nach der while-Schleife .. sein auf 0 zurückgesetzt. .
Beispiel Ausgabe:
Count is at 1
Count is at 2
Count is at 3
Count is at 4
Count is at 5
Found total of 0 rows
Jede Idee, warum die $count
nachdem die Schleifen fertig zurückgesetzt würde?
count=0
ls | while read f
do
count=$(($count+1))
echo "Count is at ${count}"
done && echo "Found total of ${count} rows"
ohne Erfolg: Mit dem &&
Operator auf der Schleife, wie so
ich auch versucht, die letzte Echo-Anweisung hinzufügen.
Analysieren Sie nicht die Ausgabe von 'ls' in jedem Fall; Verwende 'für f in *; Tu es stattdessen. – chepner