GNU screen端末セッションを再生して遅くする


1

私は、私が見たいGNU screenで作られたログファイルをいくつか持っています。 これらはelinksとvimを使います、それは単純なbashテキストではありません。

私が猫を使うなら、それは速すぎるということを除けばほとんどうまくいく。遅くする方法はありますか?私は猫のように単純なCプログラムを書くことを考えましたが、より簡単な方法がない限り、各文字を出力する間にほんの一瞬を眠ります。

GNU screenはLinux端末を共有、記録、再生するのに適したツールではないように思われるので、次回より良いツールを使用することについての提案に戸惑っているので、この問題は二度と起こらない。


1
私は記録のためにscriptとscriptreplayを使うのが良いと思います。GNUスクリーンロギングではありません。
Antonio Bonifati 'Farmboy'

それが価値があるもの、早く slowcat私が使っている script
Thomas Dickey

回答:


0

私は次のCプログラムをcat(1)にして、各文字の後に一定のマイクロ秒数の間ファイルを一時停止させました。使用例

$ ./slowcat screenlog.0 2000

視聴中に停止したい場合は、キーボードからSIGSTOPシグナルを送信するだけです(Ctrl-S)。その後SIGCONT(Ctrl-Q)を送って再開します。 Ctrl-Cを押して終了します。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

int main(int argc, char *argv[]) {
  int c, ms_wait;
  FILE *fp;
  char *prog = argv[0]; /* program name for errors */

  if (argc == 3) {
    ms_wait = atoi(argv[2]);
  } else if (argc != 2) {
    fprintf(stderr, "Usage: %s file [ms_wait]\n", prog);
    exit(1);
  } else {
    ms_wait = 1000;
  }

  if ((fp = fopen(argv[1], "r")) == NULL) {
    fprintf(stderr, "%s: can't open %s\n", prog, *argv);
    exit(1);
  }

  while ((c = fgetc(fp)) != EOF) {
    putchar(c);
    usleep(ms_wait);
  }

  return 0;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.