Beachten Sie, dass wir von einer Schleife zurückkehren, die umgeleitet wird.
Ich weiß nicht, ob ich mir Gedanken über den Schreibpuffer von "Datei" machen soll.
function f {
i=1
while :
do
echo aaaaaaaaaaaaabbbbbbbbbbbbbbbbb
((i++))
if [ $i -gt 3 ]
then
return # return while redirected
fi
done >> file # writing to file
}
f
HINWEIS: Mir ist bekannt, dass diese Funktion leicht umgeschrieben werden kann, sodass sie nicht aus der umgeleiteten Schleife zurückkehrt. Dies ist jedoch nur ein vereinfachtes Beispiel für den Zweck dieser Frage.
Versuchen Sie also bitte nicht, diesen Code zu verbessern .
Ich bin auch nicht an Problemumgehungen interessiert.
Meine einzige Frage ist, ob es etwas gibt, dessen ich mir besonders bewusst sein sollte. Wie der Dateideskriptor ist nicht richtig geschlossen. Oder manchmal kann ich erwarten, dass nur die Hälfte des Puffers (dh "aaaaaa") in die Datei geschrieben wird.
Ich würde gerne wissen, ob dies eine sehr schlechte Idee ist und warum? Oder würde es vielleicht ohne unvorhergesehene Rennbedingungen oder ähnliches funktionieren? (Aber ich möchte auch keine Antworten wie "Es ist schlecht, weil Sie stattdessen dieses und jenes Muster verwenden sollten")
quelle