Ich habe ein Video-Tutorial zum Paste-Befehl gesehen, in dem drei Dateien foo,bar,baz horizontal mit einem „+“-Zeichen dazwischen verbunden waren.
cat foo
51
33
67
cat bar
10
1
13
cat baz
7
100
15
Also verwendete er einen Paste-Befehl, um aus jeder Zeile eine ganze Addition zu machen, und leitete diese in eine While-Schleife weiter, die jede Zeile durchläuft und in den BC-Rechner einfügt:
paste -d+ foo bar baz | while read bla;do echo $bla|bc;done
Ich war verwirrt, warum er die komplizierte while-Schleife verwendet hat, da
paste -d+ foo bar baz|bc
hat auch funktioniert,
aber das brachte mich zum Nachdenken„Gibt es Situationen, in denen ein Weiterleiten in die While-Schleife sinnvoll ist oder sogar die einzige Möglichkeit darstellt, etwas zu erreichen?“
Antwort1
In diesem Fall ging es nur darum, den aktuellen Fortschritt auszugeben, und zwar Zeile für Zeile. Das Weiterleiten von While-Schleifen ist manchmal wirklich nützlich, z. B. um einen Fortschrittsbalken anzuzeigen. Beispiel für einen Fortschrittsbalken:
for i in $(seq 1 100)
do
sleep 0.1
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0