gpt4 book ai didi

linux - 从 mbuffer 获取 stderr 到变量

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:15 26 4
gpt4 key购买 nike

mbuffer 在接收端完成时,它会打印时间和速度,我想将其放入 $time$speed .

尝试实现 this回答

#!/bin/bash
exec 3>&1 4>&2 #set up extra file descriptors
error=$( { mbuffer -v 0 -4 -s 128k -m 1G -I 8023 3>&1 4>&2 > /tank3/fs5/tst; } )
exec 3>&- 4>&- # release the extra file descriptors
echo "The message is \"${error}\""

在另一个终端执行这个

echo secret | mbuffer -4 -s 128k -m 1G -O localhost:8023

我明白了

# ./fff 

summary: 0.0 KiByte in 0.1 sec - average of 0.0 KiB/s
The message is ""
secret

我希望在 "" 之间看到摘要消息。

问题

我假设必须将摘要消息打印到 STDERR,因为我将 STDOUT 通过管道传输到文件,并且其内容是正确的。

谁能看出我做错了什么?

最佳答案

我认为您可能尝试应用了错误的解决方案。您引用的那个处理了一个稍微复杂一些的问题。如果您的目标是将 stdout 定向到一个文件并捕获 stderr,那么应该这样做(是的,将 stderr 映射到 stdout 然后将 stdout 映射到一个文件是违反直觉的,但这就是重定向的工作方式,您将流 2 发送到流 1 的位置指向那一刻,这是标准输出)

error=$(mbuffer -v 0 -4 -s 128k -m 1G -I 8023 2>&1 > /tank3/fs5/tst)
echo "The message is \"${error}\""

关于linux - 从 mbuffer 获取 stderr 到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com