看板 PangSir 關於我們 聯絡資訊
1.想請問這種情形: $ cat test.txt |2 $ ls > test.txt $ cat 第一個cmd的結果要pipe進第三個cmd的input 可是第二個cmd把ls的結果output到test.txt 那第三個cmd出來的結果會是ls的output還是原本的test.txt? 意思是, $ cat test.txt |2 (cmd1) $ $ ls > test.txt (cmd2) 跟 $ ls > test.txt 是否相等? $ cat (cmd3) $ cat test.txt (往後pipe的command是否能在需要他的output時再exec?) 2.如果cat grep沒有給file name的話是從stdin輸入 假設在cat前沒有任何一個command的stdout pipe到cat的stdin 那要怎麼處理?從client read? 3.之前助教回答,若一行中有任何的command錯誤,則該行放棄 $ cat test.txt |2 (cmd1) $ 123456789 (cmd2) (wrong) $ cat (cmd3) $ cat (cmd4) 如果有要pipe到後面的command,在圖中遇到錯誤的command如上, 那是cmd3的cat還是cmd4的cat接到cmd1的output? (錯誤的command是否直接跳過不影響pipe?) 4. printenv, setenv的指令 是否是單獨指令,不會跟pipe有關? $ cat test.txt | printenv(setenv PATH) $ printenv(setenv PATH) |2 這兩種情形是否能直接判斷為不合法? $ cat test.txt |1 $ printenv(setenv PATH) 是否不用理會cat的output直接做printenv或setenv? 5. 考慮到一次將結果送回client, 如果檔案太大buffer設不夠多的話會overflow 檔案大小是否有一個確切的限制? 或者有除了一次送回結果以外建議的處理方式? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.245.128 ※ 編輯: q82419 來自: 140.112.245.128 (10/21 04:32) ※ 編輯: q82419 來自: 140.112.245.128 (10/21 11:13) ※ 編輯: q82419 來自: 140.112.245.128 (10/21 11:57)