作者 主題: 重導符號問題  (閱讀 2697 次)

0 會員 與 1 訪客 正在閱讀本文。

apachectl

  • 憂鬱的高中生
  • ***
  • 文章數: 174
    • 檢視個人資料
重導符號問題
« 於: 2005-10-04 13:55 »
請問執行 cat<file時(file 存在),shell 處理的步驟是不是先建立一個新的空的 file
出來,然後再把stdin 所輸入的資料放進去? 還是說只是先清除 file 內容而已,再
放資料進去?

ericshei

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 2257
    • 檢視個人資料
重導符號問題
« 回覆 #1 於: 2005-10-04 14:03 »
嗯?
cat < file
把file的內容做為cat的stdin,然後cat在從stdout送出.

apachectl

  • 憂鬱的高中生
  • ***
  • 文章數: 174
    • 檢視個人資料
重導符號問題
« 回覆 #2 於: 2005-10-04 14:39 »
這個我了解,不過我是想知道shell 詳細的處理動作,就是這個 file 它是怎麼處理?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17462
    • 檢視個人資料
    • http://www.study-area.org
重導符號問題
« 回覆 #3 於: 2005-10-04 15:48 »
恩?
你先將 stdin, stdout, stderr 這些 file descriptor 的概念搞清楚.
然後再看 redirection 就行了.

簡單來說, 若你沒有 < file 的話, stdin 從 keybord 讀入, 直到 ctrl-d 結束.
若你用了 < file , 那 stdin 就改從 file 讀入囉.

從系統角度來看, keybord 或 file 都是"file"...

jou

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 4989
  • 性別: 男
    • 檢視個人資料
重導符號問題
« 回覆 #4 於: 2005-10-04 16:00 »
可以看 man bash 的 1515~1728 頁! ^_^