我知道我可以save the output to a variable然后然后打印它:
VAR=$(command)
echo "$VAR"
但这有很多缺点:
stdout
输出之后看到所有stderr
的输出,这使得它们很难匹配。那么,如何保存输出并在控制台上实时查看呢?
errexit
模式下,解决方案不应有不良副作用答案 0 :(得分:0)
从我的头顶上,可以tee
将输出输出到设置为原始stdout的其他文件描述符:
exec 3>&1
VAR=$(command | tee /dev/fd/3)
需要将set -o pipefail
设置为在command
模式下检测errexit
的错误。
答案 1 :(得分:0)
这也行
VAR=$(command | tee /dev/tty)