hier ist also mein Skript:Bash Katze, während lassen und Rohr führen zu seltsamem Scoping Verhalten
count=0
cat myfile | while read line
do
#some stuff...
let count++
echo $count
done
echo $count
Die letzte Echo-Anweisung ausgegeben 0 statt die Anzahl der Zeilen in der Datei, obwohl die echo-Anweisung in der While-Schleife druckt den Inkrementierungswert.
Das Problem liegt in der Verrohrung, denn mit einer einfachen while-Schleife gibt die letzte echo-Anweisung den richtigen Wert aus. Wie kann ich das zur Arbeit bringen?
Danke, aber ich würde auch gerne die Datei in umgekehrter Reihenfolge mit tac lesen. Kann ich das tun mit ... done
subb
Nein, leider nicht. Um dieses Problem zu umgehen, können Sie den Inhalt der Datei in einer temporären Datei ausgeben und den Inhalt daraus lesen. Ich werde meine Antwort mit einem Beispiel aktualisieren. – Lekensteyn
Danke! Daran habe ich nicht gedacht. – subb