问题标签 [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.

0 投票
1 回答
2387 浏览

bash - bash 脚本中的 tee 和管道

我需要将 bash 中的 stout 和 stderr 分别重定向到单独的文件。好吧,我完成了这个命令:

从命令行运行正常。

试图将相同的命令放入bash 脚本

导致这样的错误:

试图用 $( )、` ` 等来覆盖这个命令,但完全没有效果:(

任何建议或建议将不胜感激,已经玩了几个小时:/

非常感谢Rene

0 投票
1 回答
475 浏览

ant - Ant SecureInputHandler:与 tee 一起使用时以明文形式打印密码

我们使用 Ant 的安全处理程序来输入密码:

当然,这确实有效:不打印输入。

虽然(保存构建日志)我们将构建运行为

输入以明文形式打印。哎呀。

我想知道问题出在哪里(蚂蚁?三通?)以及如何解决这个问题。

PS操作系统:

PPS 好的,所以它不是 tee - 带有 read/echo 而不是 tee 的 shell 脚本会触发相同的行为。

0 投票
1 回答
1409 浏览

linux - Linux:通过 ssh 使用 tee 命令

我已经编写了一个 Fortran 程序(我们称之为 program.exe),并为我做了一些模拟。通过 ssh,我登录了一些遥远的计算机以开始在那里运行,几天后我收集了这些计算机的结果。为了了解程序如何进行的最新情况,我还想将 shell 输出写入文本文件 output.txt (因为我不能一直登录到远处的计算机)。该命令应该类似于

这使我能够查看 output.txt 以查看当前状态,即使程序尚未结束运行。上面的命令在我的本地机器上运行良好。我首先尝试使用命令'>',但这里的问题是在整个程序完成之前没有任何内容写入文本文件(可能与管道缓冲区有关?)。所以我使用了'tee'的解决方法。

现在的问题是,当我通过 ssh (ssh -X user@machine) 登录计算机时,执行上述命令并使用 VI 编辑器查看 output.txt,直到程序完成后才会出现任何内容。如果我省略 'nohup' 和 '&' 我什至不会得到任何 shell 输出,直到它完成。我的想法是它可能必须对 ssh 缓冲的数据做一些事情,但我是一个 Linux 新手。对于任何想法或解决方法,我将不胜感激!

0 投票
3 回答
3384 浏览

linux - 三通命令 unix

如何将所有这些服务放入日志文件:

我希望所有这些服务日志都保存到一个文件中

我应该使用:

或者:

我还没有找到这样的问题谢谢!

0 投票
3 回答
7423 浏览

c - 在 C 中模拟 Linux 命令 tee

我必须tee在 C for Linux 中模拟命令。内部如何tee运作?它看起来像一个T形管,所以我应该使用管子吗?有没有一种特殊的管子?

0 投票
5 回答
41436 浏览

bash - 将标准输出捕获到变量,但仍将其显示在控制台中

我有一个 bash 脚本,它调用了几个长时间运行的进程。出于处理原因,我想将这些调用的输出捕获到变量中。但是,因为这些是长时间运行的进程,我希望 rsync 调用的输出实时显示在控制台中,而不是事后显示。

为此,我找到了一种方法,但它依赖于将文本输出到 /dev/stderr。我觉得输出到 /dev/stderr 不是一个好的做事方式。

在上面的示例中,我调用了 rsync 几次,我想在处理文件名时查看它们,但最后我仍然希望将输出放在变量中,因为稍后我将对其进行解析。

有没有一种“更清洁”的方式来实现这一点?

如果有什么不同,我使用的是 Ubuntu 12.04,bash 4.2.24。

0 投票
2 回答
2083 浏览

powershell - Powershell:捕获组合输出,仅错误输出,将组合输出发送到控制台

我正在创建一个 Powershell 脚本来运行一堆 scala 脚本(我有理由不使用构建工具)。我想以这种方式为所有这些编译生成输出:

  1. 只是文件中的编译错误
  2. 编译错误和标准输出合并在第二个文件中
  3. 标准输出和编译错误也转到标准输出

我试过tee2>>,甚至戳-OutVariable-ErrorVariable(后两者似乎只适用于原生 Powershell 命令?)。我怀疑tee和重定向是某种组合的正确方法,但经过大量搜索后,我似乎找不到合适的论坛。

这是我当前的主循环,它只是重定向错误:

第一行是让观看该过程的人可以看到正在发生的事情(似乎适当的发球/重定向/等会消除这种情况,作为副作用)。

感谢您的任何帮助/指点;我只是 Powershell 的一个普通用户。

更新:

更多的狩猎产生了以下结果:

事实证明,tee命令可以将文本发送到文件,但由于某些奇怪的原因,它无法附加到文件中。因此,您必须在变量中捕获输出,然后将变量附加到文件中。

虽然这个结果确实解决了我的一些问题,但它仍然没有生成包含错误消息的文件。

0 投票
5 回答
6680 浏览

bash - 如何在保持流分离的同时将 stdout+stderr 重定向到一个文件?

重定向 stdout+stderr 以使两者都写入文件同时仍输出到 stdout 很简单:

但是现在来自 cmd 的 stdout/stderr 都在 stdout 上。我想将 stdout+stderr 写入同一个文件(因此假设 cmd 是单线程的,则保留顺序)但仍然可以单独重定向它们,如下所示:

因此,combined_output 包含保留顺序的两者,但 command-expecting-stdout 仅获取 stdout,而 command-expecting-stderr 仅获取 stderr。基本上,我想记录标准输出+标准错误,同时仍然允许标准输出和标准错误被单独重定向和管道。tee 方法的问题在于它将它们聚集在一起。有没有办法在 bash/zsh 中做到这一点?

0 投票
1 回答
322 浏览

shell - 重定向脚本输出,同时实时显示

关于显示多个脚本的输出并同时将它们的 stout/stderr 写入日志文件,我有一个可能很简单(甚至可能已经回答)的问题:

我有一个脚本“my_script.sh”,它本身调用另一个这样的脚本:

my_to_be_logged_script.sh 在其他操作中调用 Python 脚本和另一个 shell 脚本,如下所示:

首先,所有内容都正确记录到 LOGFILE。

shell 脚本输出是实时显示的,但控制台仅在 Python 脚本完成后才会显示 Python 脚本的输出。有没有办法实时显示 Python 输出?

0 投票
1 回答
932 浏览

function - 在 shell 脚本中使用 tee 进行 stdoutt 和 stderr 重定向

我正在尝试使用以下代码将输出/错误打印到控制台和日志文件。

乐趣1(){

回声“在 fun1 中”

乐趣2

变量=5

}

乐趣2(){

回声“在 fun2 中”

}

乐趣1 2>&1 | tee -a testlog.txt

echo $var # 打印空值

在 fun1 执行后有什么方法可以将 var 的值打印为 5?我需要控制台和日志文件中的输出。fun1 也应该只执行一次。

请帮忙。