19 个稳定版本
1.0.18 | 2024年8月11日 |
---|---|
1.0.17 | 2024年5月25日 |
1.0.16 | 2024年2月29日 |
1.0.14 | 2023年12月21日 |
1.0.1 | 2020年9月21日 |
#44 在 命令行工具
每月下载量 275
12KB
174 行
faketty
一个用于在 pty 中执行命令的包装器二进制程序,即使重定向输出。
这允许分别记录进程的 stdout 和 stderr,而输出与未进行记录时在终端中看到的不同。
$ cargo install faketty
$ faketty bazel build :target >log/out 2>log/err
~~~~~~~~~~~~~~~~~~~ command to run
背景
当将 stdout/err 重定向到管道或文件时,进程可能会检测到输出不再发送到 tty(因为它没有宽度/高度、波特率等),并相应地改变其行为。例如,许多涉及终端进度条或彩色文本的程序,当输出不发送到终端时会禁用这些功能。
存在一个 script(1) 命令,它通过在伪终端(pty)中执行命令来使重定向命令的终端样式输出成为可能——一个具有宽度、高度等双向管道,并使进程相信它在与真实终端对话。然而,script
只使用单个 pty,这使得无法将 stdout 和 stderr 分解到不同的地方。
本仓库中的 faketty
命令与 script --quiet --return --command '...' /dev/null
类似,但它保留了独立的 stdout 和 stderr 流。
许可证
根据您的选择,在 Apache 许可证 2.0 版 或 MIT 许可证 下许可。除非您明确声明,否则您提交的任何有意包含在此程序中的贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~3.5MB
~68K SLoC