Ihr mögt das, oder?

  • optional
    link
    fedilink
    Deutsch
    arrow-up
    1
    ·
    edit-2
    4 months ago

    Ich hätte auch einfach find ... | while read ... geschrieben, aber warum einfach, wenn’s auch kompliziert geht.

    <(kommando) nennt sich Prozesssubstitution. Vereinfacht gesagt, wird die Ausgabe des Kommandos in eine benannte Pfeife umgeleitet und das <() dann durch deren Namen ersetzt. Das ist ganz praktisch, wenn ein Kommando Eingaben nur als Dateinamen erwartet und nicht mit stdein arbeiten kann. Z.B. um den Inhalt zweier Verzeichnisse zu vergleichen:

    diff <(ls foo/) <(ls bar/)
    

    Mit < leitet man den Inhalt einer Datei an die stdein eines Befehls weiter. Der Vorteil der Version von OP ist, dass für den While-Teil keine Untermuschel aufgemacht wird. Wenn man also nach der Schleife noch mal auf Variablen zurückgreifen möchte, die man in der Schleife gesetzt hat, funktioniert mein Beispiel mit dem | nicht, bzw. nicht in jeder Version von jeder Muschel.