次の方法で端末操作を再生できることを知っています。
scriptreplay /path/to/$STARTTIME-timing.txt /path/to/$STARTTIME-log.txt
しかし、たとえば、2分から3分までの作業をどのように再び再生できますか?scriptreplay
「加速/減速」オプションのみ使用できますか?
答え1
scriptreplay
Joey Hessが提供するパブリックドメインバージョンのPerlがあります。スクリプトの再生。
開始/終了機能を追加するように調整できます(作成者がパブリックドメインに実装を配置しました)。
以下は、2つの追加パラメータ、つまり開始時間(秒単位、デフォルトは0)と終了時間(オプション、指定されていない場合は最後まで実行)を使用するコードのクイック修正です。あなたのニーズに合わせて調整してください:
#!/usr/bin/perl -w
use strict;
$|=1;
open (TIMING, shift)
or die "cannot read timing info: $!";
open (TYPESCRIPT, shift || 'typescript')
or die "cannot read typescript: $!";
my $divisor=shift || 1;
my $start_sec=shift || 0;
my $end_sec=shift;
# Read starting timestamp line and ignore.
<TYPESCRIPT>;
my $printing = ($start_sec > 0 ? 0 : 1);
my $elapsed = 0;
my $block;
my $oldblock='';
while (<TIMING>) {
my ($delay, $blocksize)=split ' ', $_, 2;
if ($printing && ($delay / $divisor > 0.0001)) {
select(undef, undef, undef, $delay / $divisor - 0.0001);
}
read(TYPESCRIPT, $block, $blocksize) or die "read failure: $!";
print $oldblock if ($printing);
$elapsed += $delay;
exit if ((defined $end_sec) && ($elapsed > $end_sec));
$printing = ($elapsed > $start_sec);
$oldblock=$block;
}
print $oldblock;