Springe zum Hauptinhalt

Archiv
next up previous contents
Next: Pipelineverarbeitung Up: Bourne-Shell als Kommando- und Previous: Kommandos

Standard- E/A und Fileumlenkung

  • Shell stellt jedem Programm, das sie aufruft, drei E/A- Verbindungen (Kanäle) bereit:
    • Standardeingabefile (standard input -- stdin)
    • Standardausgabefile (standard output -- stdout)
    • Diagnoseausgabefile (standard error -- stderr)
  • Programme, die ihre E/A über diese logischen Verbindungen erledigen, brauchen sich um das Öffnen bzw. Schließen nicht kümmern

    Beispiel: Funktionen der C-Standardbibliothek:

    getchar(), scanf() $\Rightarrow$ Lesen von stdin
    putchar(), printf() $\Rightarrow$ Schreiben nach stdout
    fprintf() $\Rightarrow$ Schreiben nach stderr
    Beispiele für Programme, die ihre Informationen auf stdout ausgeben:

    $ ls, ps, who, date, echo, cat

    Beispiele für Programme, die von stdin lesen und nach stdout ausgeben:

    $ sh, sort, cat, wc, tr

  • Normalerweise sind diese 3 Standardfiles dem Terminal des betreffenden Nutzers zugeordnet, sie können jedoch auf einfache Weise auf beliebige Files ,,umgelenkt`` werden (i/o redirection):

    Beispiel: für Fileumlenkung

    $ ls >tmpfile
    
    $ wc -l <tmpfile
        11
    $ cat tmpfile
    kap01.tex
    kap02.tex
    kap03.tex
    kap04.tex
    kap05.tex
    kap06.tex
    kap07.tex
    kap08.tex
    kap09.tex
    rahmen.tex
    tmpfile
    $
    
    allgemeine Notation:
    <ifile Lesen ifile
    >ofile Schreiben ofile, falls ofile bereits existierte, so wird es überschrieben
    >>ofile Fortschreiben von ofile


    Problem: cmd <file >file ?!

  • Shell als Kommando:


    File shellproc enthalte Folge von Kommandos


    $ sh <${\it shellproc}$

        ...

  • Bemerkungen:
    • Ausnutzung von zwei Tatsachen
      1.
      Shell ist ,,gewöhnliches`` Programm
      2.
      Shell liest von der Standardeingabe
    • Ablauf: ,,aktuelle`` Shell ruft sich quasi selbst auf (Kopie) und wartet, bis diese neue Shell-Instanz das File shellproc gelesen hat (EOF) und die darin enthaltenen Kommandos ausgeführt worden sind
    • es existieren noch weitere Möglichkeiten zur Ausführung von Shell-Scripts (s. Abschnitt Shell-Scripts)
    • shellproc kann mit dem Editor vi erzeugt werden, hier jedoch Nutzung von cat plus Fileumlenkung (,,primitive Texterfassung``):
      $ cat >shellproc
      ls >tmpfile
      wc -l <tmpfile
      rm tmpfile
      <CRTL-D>
      $
      
    • Es existieren weitere (selten benutzte) Möglichkeiten der Fileumlenkung; den logischen E/A-Kanälen sind sogenannte Filedeskriptoren (fd_nr) zugeordnet, z.B.
        $\Rightarrow$ stdin
      1 $\Rightarrow$ stdout
      2 $\Rightarrow$ stderr
      1.
      Umlenken Ausgabekanal fd_nr nach ofile:

      fd_nr >ofile


      z.B. 2>diagnose $\Rightarrow$ stderr in diagnose umgelenkt


      2.
      Umlenken Eingabekanal fd_nr auf ifile:


      fd_nr <ifile


      3.
      Umlenken Standardausgabe in Ausgabekanal:


      fd_nr >&fd_nr


      4.
      Umlenken Standardeingabe auf Eingabekanal


      fd_nr <&fd_nr


      5.
      Verallgemeinerung:


      ${\it fd\_nr_{1} \gt\&fd\_nr_{2} }$


      ${\it fd\_nr_{1} <\&fd\_nr_{2} }$


      z.B. 2>&1 $\Rightarrow$ Standardfehlerausgabe auf Standardausgabe gemischte Ausgaben


      6.
      stdin, stdout schließen


      >&- bzw. <&-


      7.
      ,,here``-Dokumente


      <<wort    darauf wird später im Zusammenhang mit Shell-Scripts eingegangen.


next up previous contents
Next: Pipelineverarbeitung Up: Bourne-Shell als Kommando- und Previous: Kommandos
  • Ki generiertes Bild

    Offen für Argumente geht in die zweite Runde

    Online-Debattenformat der Juniorprofessur Soziologie der TU Chemnitz thematisiert am 10. September 2025 die Rolle der Solarenergie im Zuge der Energiewende …

  • Gruppe vieler Menschen

    Let's run #TUCgether!

    Zum Jubiläum des Chemnitzer Firmenlaufs gingen 266 Laufbegeisterte für die TU Chemnitz an den Start …

  • Menschen stehen vor einer Leinwand

    Erfolgreiche Summer School an der TU Chemnitz

    Professur Medienpsychologie und die Hochschulallianz Across begrüßten zur Summer School „How much science is in science fiction?“ medienbegeisterte Nachwuchswissenschaftlerinnen und -wissenschaftler aus neun verschiedenen Ländern …

  • Menschen stehen vor einem Haus

    Als Azubi an die Uni? Ja, klar!

    Kanzler der TU Chemnitz begrüßte neue Auszubildende und gratulierte Absolventinnen und Absolventen zum erfolgreichen Berufsabschluss – TU Chemnitz bildet aktuell in zehn Berufen aus …