管道是同时读取输入并产生输出的东西,例如,您可以有一个管道接收由小写字母组成的输入,管道将修改(不更改原始输入源,例如数据文件)输入数据并将其更改为大写字母。
管道以从左到右的方式处理。
回声线 | 排序 | ./计算 ${1}
line
被输送到sort
. Sort
然后对输入数据进行排序并输出数据,这些数据又通过管道传送到一个calculate
需要一些输入的进程中。
以这种方式可视化它可能更容易,将其视为管或塑料管(雨水槽种类):
输入 <---+---> 输出
|
管道
编辑:
由于您最初的问题要求解释基于 C Shell 的代码片段,所以不用多说...
1. 设置行 = ($<)
2.while(${#line} != 0)
3. if(${#line} == 5) 那么
4.回声线| 排序 | ./计算 ${1}
5.endif
6. 设置行 = ($<)
7.结束
- 从标准输入或文件中获取输入(这可以通过执行 'this_script < data file' 或 'cat data_file | this_script' 将文件重定向到此脚本来完成。
- While 循环读取直到到达 EOF(在 Unix/Linux 变体中,它的 Ctrl+D,对于 Windows,它的 F6 键)
- 如果行数已达到 5,即前 5 行,那就是困扰我的部分,我不是 100% 有信心......但会继续进一步解释......
- 5行被回显到输出,但是由于管道,输出成为排序的输入,然后排序然后从该输入读取,对数据进行排序并输出,但是又由于另一个管道,计算从排序的输出中获取输入。
- 设置变量
line
以包含更多输入。并重新循环。
为了回答您的评论,您可以根据需要添加管道,我将突出显示第 4 行,如图所示:
回声线 | 排序 | 独特 | ./计算 ${1}
随意玩弄这个组合,顺便说一句,如果我的记忆对我有帮助的话,我想line
应该是$line
这样吗?