script (Unix)
The script command is a Unix utility that records a terminal session.[1] The scriptreplay command offers a replay function to script.[2] The session is captured in file name typescript by default; to specify a different filename follow the script command with a space and the filename as such: script recorded_session.
The ttyrec program provides the same kind of functionality and offers several bindings.
Recorded shell sessions can be shared using online services.[3] The advantage of sessions recorded in this format from the usual screencasts is that shell instructions can be easily copy/pasted from the player screen.
Alternatives to Script Command
One of the problems with the script command is that it only allows logging of a child process; and often there is a need to log the command in the current process without spawning a new process, such as when automation of a script is needed that can log its own output. The unix operating system makes this possible by use of pipes and redirects. Consider the following model examples:
Bourne shell
All shells related to Bourne shell (namely: sh, bash, and ksh) allow the stdout and stderr to be attached to a named pipe and redirected to the tee command.
Example
LOGNAME="script"
rm -rf $LOGNAME.p $LOGNAME.log
mknod $LOGNAME.p p
tee <$LOGNAME.p $LOGNAME.log &
exec >$LOGNAME.p 2>&1
See also
- Command line interpreter
- Shebang (Unix)
- Bourne shell
- Bourne-Again shell
- C shell
- Python (programming language)
- Filename extension, Command Name Issues section
- Perl
- Scripting language
- Unix shell
References
- ↑ http://www.freebsd.org/cgi/man.cgi?query=script
- ↑ LinuxInsight - Replaying terminal sessions with scriptreplay
- ↑ OMG! Ubuntu! - How To Record And Share Terminal Screencasts Quickly