我打开终端并运行 live-f1,它在终端(文本)中显示每秒变化的实时提要。该程序运行时只能使用“Enter”键(退出该程序)。所以你不能在控制台中输入任何其他内容。
我想将终端内容写入一个文件,就像每秒一样。
我该怎么做?
通过打开第二个控制台并使用一些命令?
无法让它与 setterm -dump 命令一起使用。
答案1
live-f1
使用终端控制字符 (ncurses) 用新数据重绘屏幕,就像top
或一样mtr
。这就是为什么您在重定向到文件或非终端设备时会看到所有这些垃圾。
不幸的是,live-f1
没有提供一个选项来获取适合保存和稍后提取数据以进行统计等的输出。如果您仍想保存输出以便稍后重播,可以使用script
.
这将记录 live-f1 并创建两个文件:打字稿和计时文件。
script -c live-f1 -t 2> timingfile
这将重放输出
scriptreplay timingfile
答案2
我使用几种方法将输出捕获到文件中,这些方法可能对您有用。
script
这将创建一个子 shell 并将所有输出放入其中。这样做script
,然后无论你想要什么,然后exit
结束你的子shell,你的输出将在一个名为“typescript”的文件中
tee
您可以将整个管道回显到其他地方。所以你可以tee
将标准输出保存到文件中:
$ mycommand | tee myoutput
如果您还需要捕获标准错误,请重定向它:
$ mycommand 2>&1 | tee myoutput
答案3
像这样运行程序怎么样:
program > /path/to/file
program
这会将的输出/path/to/file
立即重定向。
如果您想在终端中输出,请将其保存到文件中。查看bash 有没有办法重定向输出并仍然将其发送到标准输出?