问题标签 [tee]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shell - 将管道添加到 tee-d 文件的简单方法
我正在尝试使用后处理来记录命令的输出以进行清理
(例如在将命令输出到屏幕时将 ansi 转义码删除到文件中)
(命令是 minicom,它可以作为终端等)。
目前我有以下但它不起作用(似乎阻止)。
ps
工作正常
python - python 无法在 teed 时分离进程。如何跨越后台进程并立即退出?
我从一个简单的测试用例开始:
当我定期在命令行上运行该代码时,它可以工作:
返回 unix 提示符,并且 xterm 在后台运行。
但是,当我使用 tee 运行该代码时
在我关闭 xterm 之前,我没有得到 unix 提示。
如何让 python 脚本退出,但让 xterm 在后台运行?
我已经看到:Python 产生了一个子子进程、分离和退出以及那里提到的 activestate 配方。我使用该代码创建了一个简单的测试用例,它只在后台打开一个 xterm:
当我定期在命令行上运行该代码时,它可以工作:
返回 unix 提示符,并且 xterm 在后台运行。
但是,当我使用 tee 运行该代码时
在我关闭 xterm 之前,我没有得到 unix 提示。
如何让 python 脚本退出,但让 xterm 在后台运行?
windows - 重定向文件中的输出文本时,如何在 Windows 命令行中显示输出文本?
目前我有一个 make 文件,它将使用 gnumake 构建我的软件,目前我将输出文本(如构建日志、警告、错误)重定向到一个文件中。但现在我认为在构建和重定向文件中的输出文本时也显示所有输出文本非常有帮助。以下是我当前的命令,
是否可以在重定向文件中的输出文本时显示输出文本?
bash - 从 Jenkins 中的 curl 获取 shell 错误代码,同时仍在控制台中显示输出
我在 Jenkins 中使用了一个 shell 脚本,它在某个时候使用 curl 将文件上传到服务器。我想看看 curl 产生的任何输出,但还要检查它是否是我期望的输出。如果不是,那么我想将 shell 错误代码设置为 > 0,以便 Jenkins 知道脚本失败。
我第一次尝试使用curl -f
,但这会导致一旦上传失败,管道就会被切断,并且错误输出永远不会到达客户端。然后我尝试了这样的事情:
这适用于普通的 SSH shell,但在 Jenkins 控制台输出中我看到:
我不确定为什么会这样,因为我认为 Jenkins 正在使用普通的 SSH shell 与从站通信。无论如何,整个 xargs + test 事情让我觉得有点像黑客。
有没有办法在 Jenkins 中完成此操作,以便我可以看到输出并测试它是否与特定字符串匹配?
windows - 将标准输出发送到文件 no tee
我正在使用 Windows XP,我想知道是否有从 stdout 获取输出并将其写入文件的方法。我需要能够写入控制台和文件,但使用像 tee 这样的东西是行不通的。
我的老板正在开发一个需要一段时间的应用程序,他正在向控制台写入数据。最后,他想将标准输出倒带几行,然后将输出写入文件。他认为每次向屏幕写入内容时都写入文件是太多的 I/O。我可能完全错了,但这不是 tee 命令的工作原理吗?标准输出通过管道传输到 tee,然后将输出写入控制台,然后写入指定的文件。
这可能吗?我知道stdout是一个文件描述符,所以我认为它应该是可能的,因为你可以倒带其他文件,但是stdout是只写的吗?我知道在 Unix 中标准输出是文件 dev/stdout。
谢谢
bash - Unix:如何将输出添加到文件中?
具体来说,我使用>>
和tee
在自定义别名中的组合将新的 Homebrew 更新存储在文本文件中,以及屏幕上的输出:
问题:如果我希望将此输出添加到我的文本文件中,即放置在文件的开头而不是将其附加到末尾,该怎么办?
Edit1:正如有人在下面的答案中报告的那样,使用临时文件可能是一个好方法,这至少部分帮助了我:
但问题是到 STDOUT 的输出(以前由 tee 实现),我不确定是否可以将其合并到这种临时文件方法中……?
solaris - 发球到2个代码块?
我正在尝试在 Solaris 上使用 tee 命令将 1 个命令的输出路由到 2 个不同的流,每个流都包含多个语句。这是我编码的代码片段,但不起作用。此迭代引发有关文件意外结束的错误。如果我将 > 更改为 | 它在意外令牌附近抛出错误语法错误。
建议?
bash - 我可以将我的密码回显到两个命令吗?
我想登录到远程机器,并用一个命令将我的主目录挂载在那里。我试图这样做:
但它不起作用。tee
说它不知道 -Y 选项,如果引用这两个命令 - 它也会出错。
编辑:
我发现这些东西分开放置也不起作用:
编辑2:
要获得所需的功能(安装远程家庭并在那里登录 - 在没有密码提示的单个命令中)可以很容易地使用键(没有密码 - 即Enter
作为代码输入)实现:
就是这样。之后,通过以下方式实现所需的功能:
bash - bash tee 去除颜色
我目前正在使用以下内容来捕获进入终端的所有内容并将其放入日志文件中
但是,我不希望颜色转义码/混乱进入日志文件。所以我有类似这样的东西
除了read
等待回车,这对于脚本的某些部分(例如echo -n "..."
或printf
没有\n
)并不理想。
乔纳森·莱弗勒回答的后续行动:
给定示例脚本test.sh
:
终端的输出与预期一致,并且日志文件中没有所需的颜色转义码/杂乱。然而,在检查后
test.log
,我没有看到[READ] ...
(见第 21 行test.sh
)。[我的实际 bash 脚本的] 日志文件包含
Log File: ...
它末尾的行,即使在关闭 4 和 5 fds 之后也是如此。我能够通过sleep 1
在第二个之前放置 a 来解决这个问题exec
- 我认为这应该归咎于比赛条件或 fd 恶作剧。对你们来说不幸的是,我无法重现这个问题,test.sh
但我会对任何人可能有的猜测感兴趣。
ruby - 尝试开球时失去红宝石的输出(屏幕和文件)
我有一些代码是我从发现有效的提示中拼凑而成的。但是出了点问题,我很困惑。没有任何内容发送到屏幕,文件为空。
这是程序: