| .\" Copyright (c) 1980, 1990 Regents of the University of California. |
| .\" All rights reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in the |
| .\" documentation and/or other materials provided with the distribution. |
| .\" 3. All advertising materials mentioning features or use of this software |
| .\" must display the following acknowledgement: |
| .\" This product includes software developed by the University of |
| .\" California, Berkeley and its contributors. |
| .\" 4. Neither the name of the University nor the names of its contributors |
| .\" may be used to endorse or promote products derived from this software |
| .\" without specific prior written permission. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
| .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
| .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
| .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
| .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
| .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" @(#)script.1 6.5 (Berkeley) 7/27/91 |
| .\" |
| .Dd July 30, 2000 |
| .Dt SCRIPT 1 |
| .Os Linux |
| .Sh NAME |
| .Nm script |
| .Nd make typescript of terminal session |
| .Sh SYNOPSIS |
| .Nm script |
| .Op Fl a |
| .Op Fl c Ar COMMAND |
| .Op Fl f |
| .Op Fl q |
| .Op Fl t |
| .Op Ar file |
| .Sh DESCRIPTION |
| .Nm Script |
| makes a typescript of everything printed on your terminal. |
| It is useful for students who need a hardcopy record of an interactive |
| session as proof of an assignment, as the typescript file |
| can be printed out later with |
| .Xr lpr 1 . |
| .Pp |
| If the argument |
| .Ar file |
| is given, |
| .Nm |
| saves all dialogue in |
| .Ar file . |
| If no file name is given, the typescript is saved in the file |
| .Pa typescript . |
| .Pp |
| Options: |
| .Bl -tag -width Ds |
| .It Fl a |
| Append the output to |
| .Ar file |
| or |
| .Pa typescript , |
| retaining the prior contents. |
| .It Fl c Ar COMMAND |
| Run the COMMAND rather than an interactive shell. |
| This makes it easy for a script to capture the output of a program that |
| behaves differently when its stdout is not a tty. |
| .It Fl f |
| Flush output after each write. This is nice for telecooperation: |
| One person does `mkfifo foo; script -f foo' and another can |
| supervise real-time what is being done using `cat foo'. |
| .It Fl q |
| Be quiet. |
| .It Fl t |
| Output timing data to standard error. This data contains two fields, |
| separated by a space. The first field indicates how much time elapsed since |
| the previous output. The second field indicates how many characters were |
| output this time. This information can be used to replay typescripts with |
| realistic typing and output delays. |
| .El |
| .Pp |
| The script ends when the forked shell exits (a |
| .Em control-D |
| to exit |
| the Bourne shell |
| .Pf ( Xr sh 1 ) , |
| and |
| .Em exit , |
| .Em logout |
| or |
| .Em control-d |
| (if |
| .Em ignoreeof |
| is not set) for the |
| C-shell, |
| .Xr csh 1 ) . |
| .Pp |
| Certain interactive commands, such as |
| .Xr vi 1 , |
| create garbage in the typescript file. |
| .Nm Script |
| works best with commands that do not manipulate the |
| screen, the results are meant to emulate a hardcopy |
| terminal. |
| .Sh ENVIRONMENT |
| The following environment variable is utilized by |
| .Nm script : |
| .Bl -tag -width SHELL |
| .It Ev SHELL |
| If the variable |
| .Ev SHELL |
| exists, the shell forked by |
| .Nm script |
| will be that shell. If |
| .Ev SHELL |
| is not set, the Bourne shell |
| is assumed. (Most shells set this variable automatically). |
| .El |
| .Sh SEE ALSO |
| .Xr csh 1 |
| (for the |
| .Em history |
| mechanism), |
| .Xr scriptreplay 1 . |
| .Sh HISTORY |
| The |
| .Nm script |
| command appeared in |
| .Bx 3.0 . |
| .Sh BUGS |
| .Nm Script |
| places |
| .Sy everything |
| in the log file, including linefeeds and backspaces. |
| This is not what the naive user expects. |
| .Sh AVAILABILITY |
| The script command is part of the util-linux-ng package and is available from |
| ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/. |