gpt4 book ai didi

bash - 进程替换捕获stderr

转载 作者:行者123 更新时间:2023-11-29 08:59:23 25 4
gpt4 key购买 nike

对于这个问题,我将使用 grep,因为它的用法文本会打印到 stderr:

$ grep
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

您可以使用进程替换轻松捕获标准输出:

$ read b < <(echo hello world)

但是 stderr 会跳过进程替换并打印到控制台:

$ read b < <(grep)
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

我想使用进程替换来捕获 stderr。我现在正在使用这个:

$ grep 2> log.txt

$ read b < log.txt

但我希望避免使用临时文件。

最佳答案

将命令的标准错误重定向到标准输出:

$ read "b" < <(grep 2>&1)
$ echo "$b"
Usage: grep [OPTION]... PATTERN [FILE]...

虽然在 Bash 中将命令的输出保存到变量的传统方法是使用 $():

$ b=$(grep 2>&1)
$ echo "$b"
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.

关于bash - 进程替换捕获stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392583/

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