什么是Bash中的“控制功能”?

时间:2014-01-08 13:27:54

标签: bash

control operator
              A token that performs a control function.  It is one of the following symbols:
              || & && ; ;; ( ) | |& <newline>

这个流量控制 - 这些令牌中的每一个都会影响程序的流程 - 但新行?并且|和;和|不要真正影响流量..有人可以向我解释一下。

1 个答案:

答案 0 :(得分:2)

令牌定义:

  • ||(“or”)和&&(“and”)将两个命令分开,导致第二个命令在第一个命令失败时执行(即,返回时返回非零退出代码)或成功(返回零退出代码)。
  • ;,换行符和&(“background”)将两个命令分开。如果要将“不相关”命令放在同一行上,第一个是有用的。最后一个命令还向后台发送命令,继续执行而不等待命令完成。
  • ;;分隔两个case语句。
  • ()包含一组在subshell中运行的命令。
  • |(“pipe”)分隔两个命令,将第一个命令的标准输出指向第二个命令的标准输入。
  • |&(“error pipe”)分隔两个命令,将第一个命令的标准输出标准错误指向第二个命令的标准输入。试试(echo out; echo err >&2) 2>/dev/null |& cat

正如我们所看到的,换行符通过分隔命令来影响代码的“流程”。 Flow control定义如下:

  

在数据通信中,流量控制是管理两个节点之间数据传输速率的过程,以防止快速发送器压倒慢速接收器。

管道可以被视为流量控制,因为发送方的标准输出(以及其他文件描述符,如果重定向)将被阻塞,直到接收方从标准输入消耗为止。