[ 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