Rog*_*mbe 21 io-redirection tee stdout stdin
我想将标准输出从一个进程发送到另一个进程的标准输入,但也发送到控制台。例如,将 stdout 发送到 stdout+stderr。
例如,我的git edit别名如下:
git status --short | cut -b4- | xargs gvim --remote
Run Code Online (Sandbox Code Playgroud)
我希望将文件名列表发送到屏幕以及xargs.
那么,是否有类似tee的实用程序可以做到这一点?这样我就可以执行以下操作:
git status --short | \
cut -b4- | almost-but-not-quite-entirely-unlike-tee | \
xargs gvim --remote
Run Code Online (Sandbox Code Playgroud)
Vin*_*ert 17
tee 可以通过使用复制到当前控制台 tee /dev/tty
git status --short | cut -b4- | tee /dev/tty | xargs gvim --remote
Run Code Online (Sandbox Code Playgroud)
这是错误的,请阅读评论。/dev/stdout或者,您可以使用或/dev/stderr但如果您的命令在脚本中,它们可以被重定向。请注意,/dev/tty它将始终是控制台(并且可能不存在于非交互式 shell 中)。
比/dev/tty以下更通用的解决方案:
start cmd:> echo foo | tee /dev/stderr
foo
foo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4535 次 |
| 最近记录: |