如下,使用该命令将 example.sh 的输出打印到屏幕上,同时也会写标准输出到 stdout.out 打印到屏幕。而我还想在此同时,写标准错误输出到名为 error.out 的文件中。
./example.sh | tee ./stdout.out
请问要如何修改这段命令才可以做到上面的要求?
如果你不需要输出标准错误的内容到终端的话:
./example.sh 2> ./error.out | tee ./stdout.out
将标准错误重定向到error.out中,标准输出正常显示
如果还需要输出标准错误的内容:
./example.sh > >(tee ./stdout.out) 2> >(tee ./error.out)
解释:
和2>就是重定向,前者重定向标准输出,后者重定向标准错误(2是标准错误的文件描述符)
(...)是创建一个带FIFO(一种进程间通信的方式)的子进程,让这个子进程接收前面的命令的输出。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。