我如何重定向命令的输出,使得标准输出和错误输出都被记录在一个文件中,同时仍然希望将标准错误输出作为输出显示。
我还不想使用bash来完成这个操作。有没有这样的方法?
$ ( ./command.sh >> log ) 2>&1 | tee -a log
您可以在子shell中将命令的stdout写入log
文件,然后将stderr写入管道,最后通过tee
的方式将日志保存到log
并复制到控制台。
使用示例:
$ cat command.sh
#!/bin/sh
echo out
echo err > /dev/stderr
$ ( ./command.sh >> log ) 2>&1 | tee -a log
err
$ cat log
out
err