Arch manual pages

SCRIPT(1) Dienstprogramme für Benutzer SCRIPT(1)

script - Eingabeskript einer Terminalsitzung anlegen

script [Optionen] [Datei]

script erstellt ein Eingabeskript aus allem, was in Ihrem Terminal angezeigt wird. Es ist für Studenten nützlich, die eine aufgezeichnete Kopie einer interaktiven Sitzung als Nachweis (zum Beispiel für das Lösen einer Aufgabe) benötigen, da die Eingabeskript-Datei später mit lpr(1) ausgedruckt werden kann.

Falls das Argument Datei angegeben ist, speichert script den Dialog in dieser Datei. Falls kein Dateiname angegeben ist, wird der Dialog in der Datei typescript gespeichert.

Nachfolgend kann dem Argument Größe eines der multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB folgen.
-a, --append
hängt die Ausgabe an Datei oder typescript an, wobei der vorherige Inhalt erhalten bleibt.
-c, --command Befehl
führt den Befehl anstelle einer interaktiven Shell aus. Das erleichtert es einem Skript, die Ausgabe eines Programms aufzuzeichnen, das sich anders verhält, wenn die Standardausgabe kein TTY ist.
-e, --return
gibt den Exit-Code des Kindprozesses zurück. Dafür wird das gleiche Format wie bei der Beendigung der Bash benutzt, bei der der Exit-Code 128+N ist. Der Exit-Code des Kindprozesses wird auch immer in der Eingabeskript-Datei gespeichert.
-f, --flush
aktualisiert die Ausgabe nach jedem Schreibvorgang. Dies ist für die Fernzusammenarbeit hilfreich: Eine Person schreibt »mkfifo foo; script -f foo« und eine andere kann mit »cat foo« in Echtzeit beaufsichtigen, was geschieht.
--force
ermöglicht, dass das Ausgabeziel, also die Eingabeskript-Datei, ein harter oder symbolischer Link sein kann. Der Befehl wird einem symbolischen Link folgen.
-o, --output-limit Größe
begrenzt die Größe der Eingabeskript- und Timingdateien auf den angegebenen Wert und stoppt den Kindprozess, nachdem diese Größe überschritten wurde. In die Berechnung der Dateigröße werden die Start- und Ende-Meldungen nicht einbezogen, die der Befehl script der Ausgabe des Kindprozesses voranstellt bzw. anhängt. Wegen der Pufferung kann die Ausgabedatei größer als der angegebene Wert sein.
-q, --quiet
unterdrückt Meldungen (die Meldungen zu Beginn und Ende werden nicht in die Standardausgabe geschrieben).
-t[Datei], --timing[=Datei]
schreibt die Timing-Daten in die Standardausgabe oder in die Datei, falls diese angegeben ist. Diese Daten enthalten zwei Felder, die durch Leerraum getrennt sind. Das erste Feld gibt an, wie viel Zeit seit der vorigen Ausgabe vergangen ist. Das zweite Feld gibt die Anzahl der in dieser Zeit ausgegebenen Zeichen an. Diese Informationen können zur Wiedergabe von Eingabeskripten mit realistischen Eingabe- und Ausgabeverzögerungen verwendet werden.
-V, --version
zeigt Versionsinformationen an und beendet das Programm.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.

Das Skript endet, wenn die mit fork gestartete Shell beendet wird (ein Strg-D für die Bourne-Shell (sh(1)) und exit, logout oder Strg-d (falls ignoreeof nicht gesetzt ist) für die C-Shell, csh(1)).

Bestimmte interaktive Befehle, wie vi(1), erzeugen Datenmüll in der Eingabeskript-Datei. Der Befehl script funktioniert mit Befehlen am besten, die den Bildschirm nicht manipulieren, die Ergebnisse sollen ein Hardcopy-Terminal nachahmen.

Es wird nicht empfohlen, script in nicht-interaktiven Shells auszuführen. Die innere Shell von script ist immer interaktiv, was zu unerwarteten Ergebnissen führen könnte. Falls Sie script in der Shell-Initialisierungsdatei verwenden, müssen Sie verhindern, dass es eine Endlosschleife durchläuft. Sie können beispielsweise die Datei .profile verwenden, die nur von Anmeldeshells gelesen wird:

if test -t 0 ; then
    script
    exit
fi

Sie sollten es auch vermeiden, script in Befehlsweiterleitungen (Pipes) zu verwenden, da script mehr Eingaben lesen kann, als Sie erwarten würden.

Die folgende Umgebungsvariable wird von script verwendet:
SHELL
Falls die Variable SHELL existiert, dann wird die von script geforkte Shell diese Shell sein. Falls SHELL nicht gesetzt ist, wird die Bourne-Shell angenommen (die meisten Shells setzen diese Variable automatisch).

csh(1) (für den history-Mechanismus), scriptreplay(1)

Der Befehl script erschien in 3.0BSD.

script schreibt alles in die Protokolldatei, auch Zeilenvorschübe und Rückschritte. Das ist nicht das, was der naive Benutzer erwartet.

script wurde primär für interaktive Terminalsitzungen entworfen. Wenn die Standardeingabe kein Terminal ist (zum Beispiel: echo foo | script), dann könnte die Sitzung hängenbleiben, weil der interaktiven Shell innerhalb der script-Sitzung die Dateiende-Markierung (EOF) fehlt und script keinen Anhaltspunkt hat, wann es die Sitzung schließen soll. Im Abschnitt ANMERKUNGEN finden Sie weitere Informationen.

Der Befehl script ist Teil des Pakets util-linux, welches aus dem Linux Kernel-Archiv heruntergeladen werden kann.

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.

Juni 2014 util-linux