yes

Wenn Sie sich den Shell Befehl yes genauer ansehen, könnten Sie sich fragen, warum so ein simples Programm zum Standardumfang eines jeden Linux- beziehungsweise Unix-Systems gehört. Der Shell Befehl yes gibt einfach ein "y" nach dem anderen auf der Standardausgabe aus, bis er mit Strg-C abgebrochen wird oder das Programm beendet, an das er seine Ausgaben liefert. Warum schreibt jemand ein solches Programm, anstatt einfach ein Kommando wie "while true;do echo y;done" in der Shell abzusetzen?

Einen Hinweis für die Beantwortung dieser Frage finden Sie in den originalen BSD-Manpages zum Shell Befehl yes. Das Kommando wird dort kurz und knapp mit "be repetitively affirmative" beschrieben, was Sie mit "bestätige fortlaufend" übersetzen können. Die Syntax des Befehlsaufrufs lautet "yes [expletive]". Expletive? Als optionales Argument erwartet der Befehl einen Kraftausdruck?

Stellen Sie sich einmal vor, Sie sind im Jahr 1980 und benutzen ein Terminal an einer PDP-11 oder VAX, beispielsweise um Diagramme aus Messdaten erstellen und ausplotten zu lassen. Jeder Plot dauert eine halbe oder dreiviertel Stunde. Sie starten den Job, verlassen den Raum, um andere Arbeiten zu erledigen, kommen eine halbe Stunde später wieder und lesen auf dem Terminal sinngemäß "Soll das Diagramm jetzt erstellt werden?" - zum Glück hatten die Terminals keine Mikrofone um die Kraftausdrücke aufzuzeichnen, die sie zu hören bekamen. Der Shell Befehl yes bot hier nicht nur die Möglichkeit, Unterbrechungen des Programmablaufs durch Rückfragen zu verhindern, sondern auch, seinem Ärger Luft zu machen.

Ähnliche Gelegenheiten, den Shell Befehl yes einzusetzen, haben Sie bei Kommandos, die eine große Anzahl von Rückfragen erzeugen. Etwa ein Kopieren oder Verschieben von Dateien, wenn Zieldateien überschrieben werden müssen, oder ein Dateisystemcheck bei einem schwerer beschädigten Dateisystem. Allerdings haben die meisten Befehle heute Schalter, mit denen Sie Rückfragen direkt unterdrücken können.

Verwendet wird der Shell Befehl yes im Allgemeinen so, dass seine Ausgaben über eine Pipe an das Programm übergeben werden, dessen Abfragen unterdrückt werden sollen, etwa in der Form:

$ yes | head

Als optionale Argument können Sie natürlich nicht nur Kraftausdrücke angeben, sondern zum Beispiel auch ein "n", wenn Sie den Shell Befehl yes dazu bringen wollen, Rückfragen zu verneinen.

Eine erweiterte Funktionalität gegenüber dem Shell Befehl yes bietet das Programm expect, mit dem nicht nur einfache Rückfragen beantwortet, sondern interaktive Programme komplett ferngesteuert werden können. Allerdings ist die Bedienung auch deutlich komplizierter als beim Shell Befehl yes.

Montag, 26 März 2012 Posted in Linux Befehle FAQ
  • Sie haben Fragen?
    Tel.: 06181 - 502 30 10
    E-Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

K

o

n

t

a

k

t