我們都知道Unix操作系統的Shell命令有很重要作用,下面,我們本章主要向大家介紹輸出入轉向的知識。希望對大家有用。
Unix操作系統輸出入轉向
在 Unix操作系統 中,每一個process 均有三個特殊的 file descriptor , 標准輸入( standard input )、標准輸出 ( standard output )、標准錯誤輸出( standarderror )。這三個平常是接受 terminal 的輸入,而由 terminal 顯示出去。但是Unix操作系統 提供使用者可以使用一般的檔案或 pipe 來取代這些標准輸出入設備。在tcsh 裡頭,使用者可以利用">"和"<"來進行輸出入轉向的工作。
輸出轉向:command > file
你可以將一個指令的輸出結果轉向到一個檔案,讓此檔案儲存這個 command的輸出結果。
但是請注意,如果 file 已經存在在系統中,則 file 將會被蓋過。也就是原先 file 的內容將會消失。
command >& file
與 > 相同,但是這個格式表示連 standard error 一起轉向。在 Unix操作系統 中,standard error 在 programer 的習慣是用來顯示 error 的發生,因此如果沒有被轉向時, standard output 的結果將會被轉向到 file ,而 standarderror 的結果仍將顯示在 terminal 上。
command >> file
此格示代表將 standard output 的結果 append 到 file 中。如果 file 已存在在系統中,則 standard output 的結果將會加到 file 的末端,如果 file原先並不存在,則 file 將會被開啟而將 standard output 的結果存至 file中。
command >>& filE
同上,不過此格式代表連 standard error 一起 append 到 file 之中。
Unix操作系統輸入轉向
command < file
一般程式須要自終端機輸入資料,而你可以將程式所要輸入的資料統一編入檔案中,利用轉向一並輸入。
set ignoreeeof
由於轉向輸出會有將現有檔案 overwrite 的危險,csh 與 tcsh 提供使用者一個方式來避免。
當你在Unix操作系統執行 set ignoreeeof 之後,如有輸出轉向到已存在之檔案時,它會發出一個檔案已存在的訊息。 而在處理 append 轉向上,如果已經 setignoreeeof ,則當要 append 一個不存在的檔案,將會出現一個 errormessege 。
然而如果我們當真是要轉向蓋過一個已存在的檔案,或者是要 append 一個不存在的檔案時,又要如何呢?我們只要在 ">" ">&" ">>" ">>&" 後面加上驚歎號"!",成為 ">!" , ... 就可以了。
好了,這次關於Unix操作系統的Shell命令的一些知識就介紹到這裡,希望大家看完之後技術會有很高的提升。