.\" 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/.
