跳转至

管道

形如 env | wc 这样的命令利用了「管道」语法,将两条不同的命令「对接」在一起同时运行。| 的意思是将前面的命令 env(输出所有环境变量)的标准输出连接到后面命令 wc(统计行数)的标准输入(这样就能统计出环境变量的总数)。

请你观察并学习这个语法,为你的 shell 程序实现这一功能。你可能要用到的函数:pipeclosedup 等。

样例:

$ ls | cat -n
     1  Cargo.lock
     2  Cargo.toml
     3  README.md
     4  src
     5  target
$ ls | cat -n | grep 1
     1  Cargo.lock

边界情况说明:

  • 你不需要考虑含有内建命令的管道;
  • 你可以认为 | 符号的两边总是各有至少一个空格字符。
要求 满分
支持两条命令的管道 10%
支持任意多条命令的管道 10%