我使用此表单将标准输出和标准错误重定向到同一文件.
ls -ld . fred > no_fred 2>&1
Run Code Online (Sandbox Code Playgroud)
刚刚在Red Hat Linux 4的Korn shell中测试过.no_fred包含:
ls: fred: No such file or directory
drwxrwxr-x 2 user group 1024 Apr 27 17:41 .
Run Code Online (Sandbox Code Playgroud)
">"实际上是1>,表示重定向文件描述符1(标准输出)."2>"重定向标准错误,因为标准错误是文件描述符2."&1"表示"无论你正在使用文件描述符1做什么".总而言之,这意味着"将标准输出转储到文件中,并将标准错误与其一起转储".
此方法的一个优点是错误消息出现在正确的位置.例如,对于无法编译的文件,编译器的错误消息将在makefile的编译命令之后立即出现.
>>&construct可能会将命令的输出附加到日志文件中,并将其放在后台.我不确定它是否会对标准错误做任何事情.我刚刚咨询了Bolsky/Korn 1989,它甚至不在那里,所以也许其他人可以解析它的作用.
更新:如果命令中有任何管道,则会在错误生成命令运行时首先显示早期阶段的标准错误.由于只有标准输出通过管道路由,所以当整个管道完成时,它将全部出现.
| 归档时间: |
|
| 查看次数: |
5532 次 |
| 最近记录: |