濮阳杆衣贸易有限公司

主頁 > 知識庫 > Shell中重定向的深入講解

Shell中重定向的深入講解

熱門標簽:貴陽400電話到哪里去辦理 宿松高德地圖標注 網(wǎng)絡電話外呼系統(tǒng)撥號軟件 天津智能外呼系統(tǒng)排名 申請400電話有什么用 汨羅代理外呼系統(tǒng) 400電話申請找 4層電梯外呼控制系統(tǒng)設計 電銷機器人加盟多少錢

標準輸入、標準輸出和標準錯誤

一個程序的的輸入可以來自于鍵盤,也可以來自于文件或者其他設備;同樣的,一個程序也可以將輸出顯示在屏幕或者保存到文件中。這就涉及到標準輸入、標準輸出和標準錯誤。

程序的輸入是標準輸入,默認是鍵盤,用戶可以將其指定為文件或其他設備。

程序的輸出有兩種,即標準輸出和標準錯誤,其中標準輸出是程序的正常輸出、標準錯誤是程序的錯誤輸出。二者默認都被指定為屏幕,用戶可以將其指定為文件或其他設備。

下面的程序從鍵盤讀取輸入,將結果顯示在屏幕上,即標準輸入、標準輸出和標準錯誤都采用默認的設置:

$ ls ~
hello.txt homework name source.list.bk

重定向

用戶可以對輸入和輸出進行重定向,即指定標準輸入、標準輸出和標準錯誤。

標準輸入使用進行指定,下面的命令將input文件作為sort命令的輸入,即將sort命令的標準輸入重定向為input文件:

$ cat input
zhao
qian
sun
li
zhou
wu
zheng
wang
$ sort  input
li
qian
sun
wang
wu
zhao
zheng
zhou

本例中input文件作為sort命令的標準輸入。

使用>重定向標準輸出:

$ ls ~ > output
$ cat output
hello.txt
homework
input
name
output
source.list.bk

如上所示,ls ~的標準輸出被重定向為output,因此其輸出被寫入output文件。

需要注意的是,如果output不存在,將自動創(chuàng)建output文件;如果output存在,那么將清空output的內容,并寫入新的內容。

如果只是想在輸出文件的已有內容的末尾追加,可以使用>>:

$ date >> output
$ cat output
hello.txt
homework
input
name
output
source.list.bk
Sat Jun 30 18:18:53 CST 2018

下面的命令將標準輸入重定向為input,將標準輸出重定向為output:

$ sort  input > output # 覆蓋output內容
$ sort  input >> output # 在output末尾追加內容

文件描述符

每個輸入源和輸出地都有一個描述符,標準輸入的描述符為0,標準輸出的描述符為1,標準錯誤的描述符為2。

使用0重定向標準輸入,事實上,由于程序的默認重定向輸入即為標準輸入,所以下面的兩條命令是等價的:

$ sort  input
$ sort 0 input

同樣的,程序的默認重定向輸出為標準輸出,所以下面的兩條命令也是等價的:

$ ls > output
$ ls 1> output

下面的命令將標準輸入重定向為input文件,標準輸出重定向為output文件(追加),將標準錯誤重定向為error文件:

$ sort  input 1>> output 2> error

組合標準輸出和標準錯誤

下面的命令將標準輸出重定向為output文件,標準錯誤仍然顯示在屏幕上:

$ sort  input > output

下面的命令將標準輸出重定向為output文件,將標準錯誤重定向為error文件:

$ sort  input > output 2> error

下面的命令將標準輸出重定向為output文件,使用2>1將標準錯誤重定向為標準輸出:

$ sort  input > output 2>1

上面的例子中,標準輸出和標準錯誤都會被重定向為output文件。

注意,下面的命令將導致標準輸出和標準錯誤的相互覆蓋,因此不可使用:

$ sort  input > output 2> output

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實例
  • linux shell中curl 發(fā)送post請求json格式問題的處理方法
  • shell腳本編寫俄羅斯方塊
  • shell實現(xiàn)俄羅斯方塊腳本
  • Python設置在shell腳本中自動補全功能的方法
  • foreman ubuntu16 快速安裝

標簽:海北 烏蘭察布 昌都 臨沂 連云港 贛州 撫州 廣東

巨人網(wǎng)絡通訊聲明:本文標題《Shell中重定向的深入講解》,本文關鍵詞  Shell,中,重定向,的,深入,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell中重定向的深入講解》相關的同類信息!
  • 本頁收集關于Shell中重定向的深入講解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    武冈市| 南召县| 双鸭山市| 神木县| 疏勒县| 若羌县| 米脂县| 娄底市| 松滋市| 井陉县| 白银市| 余庆县| 泉州市| 抚松县| 青海省| 波密县| 黔东| 赤壁市| 西林县| 册亨县| 邢台县| 万载县| 永仁县| 尼玛县| 大名县| 清河县| 安达市| 德清县| 宣化县| 洪泽县| 翁牛特旗| 阿城市| 三都| 贡山| 普格县| 兴化市| 安国市| 南江县| 仙桃市| 衡水市| 望奎县|