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