Dam*_*ien 2 bash shell stdout stderr
这是我经常尝试做的任务.我想将stderr和stdout都记录到日志文件中.但我只想打印到控制台stderr.
我试过tee,但是一旦我使用"2>&1"合并了stderr和stdout.我不能再将stdout打印到屏幕上,因为我的管道都已合并.
这是我尝试过的一个简单例子
./dosomething.sh | tee -a log 2>&1.现在我有stderr和stdout到日志和屏幕.
有任何想法吗?
基于对本网站的一些阅读,已经提出了这个问题. 将STDOUT和STDERR写入日志文件,也将STDERR写入屏幕
还有一个非常相似的问题: 同步保存stdout,stderr和stdout + stderr
但是当stdoud和stderr同步写入日志文件时,它们都不能将stdout + stderr重定向到日志和stderr到屏幕.
我能够在bash中使用它:
(./tmp.sh 2> >(tee >(cat >&2) >&1)) > tmp.log
Run Code Online (Sandbox Code Playgroud)
这在zsh中无法正常工作(提示不会等待进程退出),并且在dash中根本不起作用.一个更便携的解决方案可能是编写一个简单的C程序来完成它.
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |