看板 PangSir 關於我們 聯絡資訊
針對標準 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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.128