Hallo,
ich habe hier folgendes Script.
In die Variable 'count' wird geschrieben wieviel Wörter in einer Textdatei stehen. Mit If wird geprüft ob die Anzahl der Wörter größer 0 ist, wenn ja sollen die Zeilen der Datei ausgegeben und danach gelöscht werden. Falls die Datei leer ist wird angezeigt das nichts zu tun ist (eigentlich soll es dann beendet werden, hab ich für die Versuche geändert). Das ganze steckt in einer Endlosschleife die so lange läuft bis die Datei leer ist.
Problem: If scheint sich anders zu verhalten wenn es in der Endlosschleife steckt oder wenn es "allein" steht. Kommentiere ich die Endlosschleife aus, werden mir alle Zeilen der Datei angezeigt, wenn If in der Endlosschleife steckt, wird "nichts zu tun" angezeigt, auch wenn er ohne Endlosschleife die Datei auswertet. Wie kann das sein?
ich habe hier folgendes Script.
Code:
file=/path/to/file
while true ; do
count=$(cat "$file" | wc -m )
if [ "$count" -ge 1 ] ; then
while IFS= read -r zeile ; do
echo "$zeile"
sed -i '1,1 d' "$file"
done < "$file"
else
echo "nichts zu tun"
fi
done
In die Variable 'count' wird geschrieben wieviel Wörter in einer Textdatei stehen. Mit If wird geprüft ob die Anzahl der Wörter größer 0 ist, wenn ja sollen die Zeilen der Datei ausgegeben und danach gelöscht werden. Falls die Datei leer ist wird angezeigt das nichts zu tun ist (eigentlich soll es dann beendet werden, hab ich für die Versuche geändert). Das ganze steckt in einer Endlosschleife die so lange läuft bis die Datei leer ist.
Problem: If scheint sich anders zu verhalten wenn es in der Endlosschleife steckt oder wenn es "allein" steht. Kommentiere ich die Endlosschleife aus, werden mir alle Zeilen der Datei angezeigt, wenn If in der Endlosschleife steckt, wird "nichts zu tun" angezeigt, auch wenn er ohne Endlosschleife die Datei auswertet. Wie kann das sein?