Stu*_*ley 26 warnings stdout stderr
我正在创建一个处理预定义数据集的脚本,输出到文件.我想在一个数据(在我有权访问的每个集合中始终为"常规")不同时声明该值未处理(因为我不知道它如何影响数据)时弹出警告.我应该将此警告输出到stderr或stdout吗?
Mar*_*off 29
如果我保存了这个脚本的输出(即仅限stdout)以便我以后可以处理它,那么该警告会干扰输出的解析方式吗?此外,如果输出通过管道传输到另一个进程,则警告应显示在终端上,以便用户立即看到它.
出于这些原因,通常,您会向stderr输出警告.
警告应该发给stderr.
除了其他人提出的要点(导致下游进程的解析错误以及在控制台上隐藏用户的错误)之外,还存在一个灵活性问题.
如果用户不希望来自stderr的警告转到正在解析stdout的下游进程,则他们不必执行任何特殊操作.
your_script | downstream_process
Run Code Online (Sandbox Code Playgroud)
如果用户希望来自stderr的警告转到将解析stdout和stderr的下游进程,则用户可以使用2>&1将stderr重定向到stdout.
your_script 2>&1 | downstream_process
Run Code Online (Sandbox Code Playgroud)
如果同时向stdout输出警告和任何正常数据,则用户无法在不解析所有内容的情况下将警告与数据分离.因此,向stderr发送警告也会为您的脚本提供更大的灵活性.
| 归档时间: |
|
| 查看次数: |
5366 次 |
| 最近记录: |