我的脚本运行一些函数/外部程序。我需要正常打印输出。 Hovever,我还需要将stdout
和stderr
分别保存到两个变量/文件中。让我们假设文件在shell中可能更容易。
这是我的脚本模板:
#!/bin/sh
print_things()
{
echo 'Some normal output'
echo 'Now errors' 1>&2
echo 'Normal output again'
echo 'And more errors' 1>&2
}
print_things | <do magic here>
<possibly a few more lines of magic>
# there will be the rest of the script
exit 0
我想要一个解决方案,保留分为stderr和stdout,但如果它们在某个时刻合并,只要它们被单独保存,它仍然是可以接受的。 输出必须保持行的顺序,因此它必须看起来像:
Now errors
And more errors
Some normal output
Normal output again
执行&#34;魔法&#34;文件夹中应该有两个文件。一个包含整个stdout
,另一个包含stderr
。
保留退出状态而不将其保存到文件的加分点。
我正在寻找符合posix标准的解决方案。