[ CN ] 作业一补充说明

楼主: ckmShih (林檎技客 Ringo Geek)   2013-10-21 15:11:49
针对标准 pipe 的一些疑问
例如不合法的指令、pipe 给不接受 stdin 的指令该如何处理等
建议同学可以去工作站的 shell 实测
基本上我们会以实际工作站 shell 给的结果为准
对作业要求有疑问的部分,可以询问助教
但助教不负责 Debug 程式码
请不要直接拿一段 Code 来问为何不能 work
以下针对作业要求作补充说明
* 每行指令本身长度最多不会超过 1024 bytes
测试文字档案大小不会超过 2048 bytes
但请注意一个指令最多可能会要求印出十个档案的内容
* 我们假设 printenv, setenv的指令会忽略 stdin 的内容
* 空白的处理方式依照实际 shell 的运作为准
也就是 pipe (|) 跟前后指令可能会有空白 也可能不会有
|(number) 的 | 与数字之间则不会有空白
强烈建议同学不要以空白作为分割的依据
* 会有多个延迟Input同时指到另一个Command的case
必须所有 Input 都处理且 Output 顺序要保证 First In, First Out
例如
% cat text1.txt |3
% cat text2.txt |2
% cat text3.txt |1
% grep 'body'
则在第四行 Server 必须回传等同以下指令之结果
% cat text1.txt | grep 'body'
% cat text2.txt | grep 'body'
% cat text3.txt | grep 'body'
同时顺序不能颠倒或乱序
* 每一行的cmd在该行就会执行
例如
% cat test.txt |2
% ls > test.txt
% cat
第三行结果还是会印出原本 test.txt 的内容 不受第二行影响
TA

Links booklink

Contact Us: admin [ a t ] ucptt.com