歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Linux Shell 文件重定向 心得

在Unix以及類Unix平台下,shell中關系到輸入與輸出命令大致如下(可能不全):

echo、read、cat、tree、less、more

在Linux的shell中光是一個單獨的命令,不能印證shell的強大。結合 管道 和 重定向 才能展現其魅力無窮。

管道,不用多說,就是將前一個命令的輸出當做下一命令的輸入。

下面講一下文件重定向(以前我自己沒有理解到的地方)

輸出重定向:

command > filename      #將標准輸出重定向到文件filename中

等價於: command 1>filename

command >> filename    #將標准輸出追加到文件中

等價於:command 1>>filename

command 2> filenname    #將標准錯誤重定向到文件中

command 2>> filename    #已追加方式將錯誤放入文件中

command [>|>>] &m       #將輸出重定向到文件描述符m所代表的文件中,括號中的符號2選1

輸入重定向:

command < filename

command << delimiter   #例如cat命令: cat > file << delimiter,將delimiter重定向到標准輸入後,在向file文件中寫內容時,遇到delimiter結束。

command < &m       #將文件描述符m所指文件作為標准輸入

command < &-        #關閉標准輸入

上面的重定下命令,糅合到一起可以是這樣:

command [>|>>] filename 2>&1   #將標准輸入和標准錯誤輸出都重定向到文件中了

command < filename1 > filename2   #將filename1作為標准輸入,,標准輸出到filename2

細心的朋友可能注意到,在使用文件描述符的時候,為什麼有些前面帶有符號'&',而有些又沒有呢。

cat file > 2   #將標准輸出重定向到 名為2的文件中

cat file >& 2  #將標准輸出重定向到標准錯誤輸出

cat file > &2   #語法錯誤

得到一個結論,符號'&'只能和重定向符號挨在一起,有'&' 表示後面的數字代表文件描述符,否則為普通文件。

好了,暫時告一段落,如果有不對的地方,忘各位指正!!

Copyright © Linux教程網 All Rights Reserved