Shell脚本 - io重定向 - 运算符的优先级
问题的出现原因是两个命令行的重定向语法错误,正确的语法应该是:
bad_command 2>&1 >> file.out
和
bad_command >> file.out 2>&1
这两个命令之间存在差异。重定向是命令,它们按从左到右的顺序执行。重定向操作作用于进程的文件描述符(fds)。你可能听说过标准文件描述符#0(标准输入stdin)、#1(标准输出stdout)和#2(标准错误stderr)。
第一个命令行的重定向语句的含义是:"将文件描述符2复制为文件描述符1的副本,然后将文件描述符1改为追加到'file.out'"(第二个重定向对文件描述符2没有影响,它仍然是最初文件描述符1的副本)。
第二个命令行的重定向语句的含义是:"将文件描述符1改为追加到'file.out',然后将文件描述符2设为文件描述符1的副本"(第一个重定向对第二个重定向有影响,两个文件描述符现在相同)。
那么关于 "operator precedence" 的文档呢?这个文档不存在吗?
你具体指的是哪个 "operator precedence" 文档呢?