1f58c445c6
script(1) uses three processes (doinput, dooutput and doshell). It's possible that the shell process is finished before the input and output processes are completely initialized. For example: $ script -c "printf Bingo" In particular case the output and input processes read/write data from shell process in time when the shell process is already done -- so it hangs on read(). The second problem is that the output process can finish although there are unread data from finished shell process -- an output in the typescript file and on terminal is incomplete! script(1) has to pass: $ for i in `seq 1 1000`; do script -q -c "printf 'Bingo\n'"; done | grep -c Bingo 1000 without problems. Signed-off-by: Karel Zak <kzak@redhat.com> |
||
---|---|---|
.. | ||
.gitignore | ||
Makefile.am | ||
README.cal | ||
README.ddate | ||
README.flushb | ||
README.namei | ||
README.namei2 | ||
README.reset | ||
cal.1 | ||
cal.c | ||
chkdupexe.1 | ||
chkdupexe.pl | ||
ddate.1 | ||
ddate.c | ||
kill.1 | ||
kill.c | ||
kill.h | ||
logger.1 | ||
logger.c | ||
look.1 | ||
look.c | ||
mcookie.1 | ||
mcookie.c | ||
namei.1 | ||
namei.c | ||
procs.c | ||
rename.1 | ||
rename.c | ||
reset | ||
reset.1 | ||
reset.033c | ||
script.1 | ||
script.c | ||
scriptreplay.1 | ||
scriptreplay.pl | ||
setterm.1 | ||
setterm.c | ||
whereis.1 | ||
whereis.c | ||
write.1 | ||
write.c |
README.reset
RedHat and SuSE take the program reset from ncurses, where reset is a name for the program tset. It is approximately equivalent to stty sane; tputs rs1; tputs rs2; tputs rf with `tputs rf' replaced by `tputs if' when there is an init_file but no reset_file. In the comments it wonders whether also sending rs3, rmacs, rmul, rmm might be a good idea. Slackware uses the small script given here. The part `echo -e \\033c' is the canonical reset of the kernel console status, and is equivalent to `tputs rs1' for a linux terminal. So, both versions are approximately the same. [A disadvantage of `echo -e \\033c' might be that it is potentially wrong on a non-vt100, non-xterm, non-linux terminal. An advantage is that there are terminfo entries for xterm around that only use rs1=^O as reset, and then \Ec is much better.]