19b50d902SRodney W. Grimes.\" Copyright (c) 1980, 1990, 1993 29b50d902SRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 39b50d902SRodney W. Grimes.\" 49b50d902SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 59b50d902SRodney W. Grimes.\" modification, are permitted provided that the following conditions 69b50d902SRodney W. Grimes.\" are met: 79b50d902SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 89b50d902SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 99b50d902SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 109b50d902SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 119b50d902SRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 129b50d902SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 139b50d902SRodney W. Grimes.\" may be used to endorse or promote products derived from this software 149b50d902SRodney W. Grimes.\" without specific prior written permission. 159b50d902SRodney W. Grimes.\" 169b50d902SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 179b50d902SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 189b50d902SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 199b50d902SRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 209b50d902SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 219b50d902SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 229b50d902SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 239b50d902SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 249b50d902SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 259b50d902SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 269b50d902SRodney W. Grimes.\" SUCH DAMAGE. 279b50d902SRodney W. Grimes.\" 289b50d902SRodney W. Grimes.\" @(#)script.1 8.1 (Berkeley) 6/6/93 29c3aac50fSPeter Wemm.\" $FreeBSD$ 309b50d902SRodney W. Grimes.\" 31*ef87c4dcSGlen Barber.Dd September 28, 2011 329b50d902SRodney W. Grimes.Dt SCRIPT 1 3362500372SRuslan Ermilov.Os 349b50d902SRodney W. Grimes.Sh NAME 359b50d902SRodney W. Grimes.Nm script 369b50d902SRodney W. Grimes.Nd make typescript of terminal session 379b50d902SRodney W. Grimes.Sh SYNOPSIS 38236d2f55SPhilippe Charnier.Nm 394294ff16SSheldon Hearn.Op Fl akq 40e8eb82a8SPeter Wemm.Op Fl t Ar time 41c548db03SRuslan Ermilov.Op Ar file Op Ar command ... 429b50d902SRodney W. Grimes.Sh DESCRIPTION 43e8937ba0SPhilippe CharnierThe 44e8937ba0SPhilippe Charnier.Nm 45e8937ba0SPhilippe Charnierutility makes a typescript of everything printed on your terminal. 469b50d902SRodney W. GrimesIt is useful for students who need a hardcopy record of an interactive 479b50d902SRodney W. Grimessession as proof of an assignment, as the typescript file 489b50d902SRodney W. Grimescan be printed out later with 499b50d902SRodney W. Grimes.Xr lpr 1 . 509b50d902SRodney W. Grimes.Pp 519b50d902SRodney W. GrimesIf the argument 529b50d902SRodney W. Grimes.Ar file 539b50d902SRodney W. Grimesis given, 549b50d902SRodney W. Grimes.Nm 559b50d902SRodney W. Grimessaves all dialogue in 569b50d902SRodney W. Grimes.Ar file . 579b50d902SRodney W. GrimesIf no file name is given, the typescript is saved in the file 589b50d902SRodney W. Grimes.Pa typescript . 599b50d902SRodney W. Grimes.Pp 6051afb8dfSPeter WemmIf the argument 61fed771deSPhilippe Charnier.Ar command 6251afb8dfSPeter Wemmis given, 6351afb8dfSPeter Wemm.Nm 6451afb8dfSPeter Wemmwill run the specified command with an optional argument vector 6551afb8dfSPeter Wemminstead of an interactive shell. 6651afb8dfSPeter Wemm.Pp 67fed771deSPhilippe CharnierThe following options are available: 68fed771deSPhilippe Charnier.Bl -tag -width indent 699b50d902SRodney W. Grimes.It Fl a 709b50d902SRodney W. GrimesAppend the output to 719b50d902SRodney W. Grimes.Ar file 729b50d902SRodney W. Grimesor 739b50d902SRodney W. Grimes.Pa typescript , 749b50d902SRodney W. Grimesretaining the prior contents. 75e8eb82a8SPeter Wemm.It Fl k 76*ef87c4dcSGlen BarberLog keys sent to the program as well as output. 7751afb8dfSPeter Wemm.It Fl q 7851afb8dfSPeter WemmRun in quiet mode, omit the start and stop status messages. 79e8eb82a8SPeter Wemm.It Fl t Ar time 80*ef87c4dcSGlen BarberSpecify the interval at which the script output file will be flushed 81*ef87c4dcSGlen Barberto disk, in seconds. 826a3e8b0aSRuslan ErmilovA value of 0 83e8eb82a8SPeter Wemmcauses 84e8eb82a8SPeter Wemm.Nm 85*ef87c4dcSGlen Barberto flush after every character I/O event. 866a3e8b0aSRuslan ErmilovThe default interval is 874cbaceabSJoseph Koshy30 seconds. 889b50d902SRodney W. Grimes.El 899b50d902SRodney W. Grimes.Pp 9051afb8dfSPeter WemmThe script ends when the forked shell (or command) exits (a 919b50d902SRodney W. Grimes.Em control-D 929b50d902SRodney W. Grimesto exit 939b50d902SRodney W. Grimesthe Bourne shell 949b50d902SRodney W. Grimes.Pf ( Xr sh 1 ) , 959b50d902SRodney W. Grimesand 969b50d902SRodney W. Grimes.Em exit , 979b50d902SRodney W. Grimes.Em logout 989b50d902SRodney W. Grimesor 99fed771deSPhilippe Charnier.Em control-D 1009b50d902SRodney W. Grimes(if 1019b50d902SRodney W. Grimes.Em ignoreeof 1029b50d902SRodney W. Grimesis not set) for the 1039b50d902SRodney W. GrimesC-shell, 1049b50d902SRodney W. Grimes.Xr csh 1 ) . 1059b50d902SRodney W. Grimes.Pp 1069b50d902SRodney W. GrimesCertain interactive commands, such as 1079b50d902SRodney W. Grimes.Xr vi 1 , 1089b50d902SRodney W. Grimescreate garbage in the typescript file. 109e8937ba0SPhilippe CharnierThe 110e8937ba0SPhilippe Charnier.Nm 111e8937ba0SPhilippe Charnierutility works best with commands that do not manipulate the screen. 1122cb6b4efSBrian FeldmanThe results are meant to emulate a hardcopy terminal, not an addressable one. 1139b50d902SRodney W. Grimes.Sh ENVIRONMENT 114aa2e0334SDavid E. O'BrienThe following environment variables are utilized by 1158fe908efSRuslan Ermilov.Nm : 1169b50d902SRodney W. Grimes.Bl -tag -width SHELL 1179b91846cSDavid E. O'Brien.It Ev SCRIPT 1189b91846cSDavid E. O'BrienThe 1199b91846cSDavid E. O'Brien.Ev SCRIPT 1209b91846cSDavid E. O'Brienenvironment variable is added to the sub-shell. 1219b91846cSDavid E. O'BrienIf 1229b91846cSDavid E. O'Brien.Ev SCRIPT 1239b91846cSDavid E. O'Brienalready existed in the users environment, 1249b91846cSDavid E. O'Brienits value is overwritten within the sub-shell. 1259b91846cSDavid E. O'BrienThe value of 1269b91846cSDavid E. O'Brien.Ev SCRIPT 1279b91846cSDavid E. O'Brienis the name of the 1289b91846cSDavid E. O'Brien.Ar typescript 1299b91846cSDavid E. O'Brienfile. 1309b50d902SRodney W. Grimes.It Ev SHELL 1319b50d902SRodney W. GrimesIf the variable 1329b50d902SRodney W. Grimes.Ev SHELL 1339b50d902SRodney W. Grimesexists, the shell forked by 134236d2f55SPhilippe Charnier.Nm 13587faa07bSSheldon Hearnwill be that shell. 13687faa07bSSheldon HearnIf 1379b50d902SRodney W. Grimes.Ev SHELL 1389b50d902SRodney W. Grimesis not set, the Bourne shell 1394e86fcacSSheldon Hearnis assumed. 140*ef87c4dcSGlen Barber.Pq Most shells set this variable automatically . 1419b50d902SRodney W. Grimes.El 1429b50d902SRodney W. Grimes.Sh SEE ALSO 1439b50d902SRodney W. Grimes.Xr csh 1 144*ef87c4dcSGlen Barber.Po 145*ef87c4dcSGlen Barberfor the 1469b50d902SRodney W. Grimes.Em history 147*ef87c4dcSGlen Barbermechanism 148*ef87c4dcSGlen Barber.Pc . 1499b50d902SRodney W. Grimes.Sh HISTORY 1509b50d902SRodney W. GrimesThe 151236d2f55SPhilippe Charnier.Nm 1529b50d902SRodney W. Grimescommand appeared in 1539b50d902SRodney W. Grimes.Bx 3.0 . 1549b50d902SRodney W. Grimes.Sh BUGS 155e8937ba0SPhilippe CharnierThe 156e8937ba0SPhilippe Charnier.Nm 157e8937ba0SPhilippe Charnierutility places 1589b50d902SRodney W. Grimes.Sy everything 1599b50d902SRodney W. Grimesin the log file, including linefeeds and backspaces. 1609b50d902SRodney W. GrimesThis is not what the naive user expects. 16151afb8dfSPeter Wemm.Pp 16251afb8dfSPeter WemmIt is not possible to specify a command without also naming the script file 16332c21313SSteve Pricebecause of argument parsing compatibility issues. 164e8eb82a8SPeter Wemm.Pp 165e8eb82a8SPeter WemmWhen running in 166e8eb82a8SPeter Wemm.Fl k 1676a3e8b0aSRuslan Ermilovmode, echo cancelling is far from ideal. 1686a3e8b0aSRuslan ErmilovThe slave terminal mode is checked 1696a3e8b0aSRuslan Ermilovfor ECHO mode to check when to avoid manual echo logging. 1706a3e8b0aSRuslan ErmilovThis does not 171*ef87c4dcSGlen Barberwork when the terminal is in a raw mode where 172*ef87c4dcSGlen Barberthe program being run is doing manual echo. 17329da7547SMikolaj Golub.Pp 174*ef87c4dcSGlen BarberIf 17529da7547SMikolaj Golub.Nm 176*ef87c4dcSGlen Barberreads zero bytes from the terminal, it switches to a mode when it 177*ef87c4dcSGlen Barberonly attempts to read 178*ef87c4dcSGlen Barberonce a second until there is data to read. 179*ef87c4dcSGlen BarberThis prevents 18029da7547SMikolaj Golub.Nm 181*ef87c4dcSGlen Barberfrom spinning on zero-byte reads, but might cause a 1-second delay in 182*ef87c4dcSGlen Barberprocessing of user input. 183