
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
“|”是管道命令操作符,简称管道符。利用linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入
管道是linux中一个很重要的命令行操作,因为linux的每个命令都以完成一个任务为目的,只有把些命令组合起来才能做复杂的工作,当然这种方式也提供了很大的灵活性。
如一个简单的管道的例子(略)
虽然这个例子很简单,但已经可以说明bash中管道的原理。从上面的分析我们可以看出,linux中创建进程是从父进程"fork"出来,然后再execve,而不是在创建时就指定它要运行的函数,完成独立地创建,这样天然的进程的继承关系,为管道的实现提供了很大的方便,因为管道的实现利用了子进程继承父进程的文件描述符表这一特性。
<表示的是输入重定向的意思,就是把<后面跟的文件取代键盘作为新的输入设备。|则表示一个管道的意思,可以理解为东西从管道的一边流向另外一边。你的命令意思就是说从/etc/motd文件中读取内容,然后把cat命令读取出来的内容作为后面一个命令a.out的输入参数来执行a.out命令。不知道这样解释明白吗?