佳木斯湛栽影视文化发展公司

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

Shell中重定向的深入講解

熱門標(biāo)簽:Linux服務(wù)器 呼叫中心市場(chǎng)需求 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 百度競(jìng)價(jià)排名 地方門戶網(wǎng)站 服務(wù)外包 AI電銷

標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

一個(gè)程序的的輸入可以來自于鍵盤,也可以來自于文件或者其他設(shè)備;同樣的,一個(gè)程序也可以將輸出顯示在屏幕或者保存到文件中。這就涉及到標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。

程序的輸入是標(biāo)準(zhǔn)輸入,默認(rèn)是鍵盤,用戶可以將其指定為文件或其他設(shè)備。

程序的輸出有兩種,即標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤,其中標(biāo)準(zhǔn)輸出是程序的正常輸出、標(biāo)準(zhǔn)錯(cuò)誤是程序的錯(cuò)誤輸出。二者默認(rèn)都被指定為屏幕,用戶可以將其指定為文件或其他設(shè)備。

下面的程序從鍵盤讀取輸入,將結(jié)果顯示在屏幕上,即標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都采用默認(rèn)的設(shè)置:

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

重定向

用戶可以對(duì)輸入和輸出進(jìn)行重定向,即指定標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。

標(biāo)準(zhǔn)輸入使用進(jìn)行指定,下面的命令將input文件作為sort命令的輸入,即將sort命令的標(biāo)準(zhǔn)輸入重定向?yàn)閕nput文件:

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

本例中input文件作為sort命令的標(biāo)準(zhǔn)輸入。

使用>重定向標(biāo)準(zhǔn)輸出:

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

如上所示,ls ~的標(biāo)準(zhǔn)輸出被重定向?yàn)閛utput,因此其輸出被寫入output文件。

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

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

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

下面的命令將標(biāo)準(zhǔn)輸入重定向?yàn)閕nput,將標(biāo)準(zhǔn)輸出重定向?yàn)閛utput:

$ sort  input > output # 覆蓋output內(nèi)容
$ sort  input >> output # 在output末尾追加內(nèi)容

文件描述符

每個(gè)輸入源和輸出地都有一個(gè)描述符,標(biāo)準(zhǔn)輸入的描述符為0,標(biāo)準(zhǔn)輸出的描述符為1,標(biāo)準(zhǔn)錯(cuò)誤的描述符為2。

使用0重定向標(biāo)準(zhǔn)輸入,事實(shí)上,由于程序的默認(rèn)重定向輸入即為標(biāo)準(zhǔn)輸入,所以下面的兩條命令是等價(jià)的:

$ sort  input
$ sort 0 input

同樣的,程序的默認(rèn)重定向輸出為標(biāo)準(zhǔn)輸出,所以下面的兩條命令也是等價(jià)的:

$ ls > output
$ ls 1> output

下面的命令將標(biāo)準(zhǔn)輸入重定向?yàn)閕nput文件,標(biāo)準(zhǔn)輸出重定向?yàn)閛utput文件(追加),將標(biāo)準(zhǔn)錯(cuò)誤重定向?yàn)閑rror文件:

$ sort  input 1>> output 2> error

組合標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

下面的命令將標(biāo)準(zhǔn)輸出重定向?yàn)閛utput文件,標(biāo)準(zhǔn)錯(cuò)誤仍然顯示在屏幕上:

$ sort  input > output

下面的命令將標(biāo)準(zhǔn)輸出重定向?yàn)閛utput文件,將標(biāo)準(zhǔn)錯(cuò)誤重定向?yàn)閑rror文件:

$ sort  input > output 2> error

下面的命令將標(biāo)準(zhǔn)輸出重定向?yàn)閛utput文件,使用2>1將標(biāo)準(zhǔn)錯(cuò)誤重定向?yàn)闃?biāo)準(zhǔn)輸出:

$ sort  input > output 2>1

上面的例子中,標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都會(huì)被重定向?yàn)閛utput文件。

注意,下面的命令將導(dǎo)致標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤的相互覆蓋,因此不可使用:

$ sort  input > output 2> output

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

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

標(biāo)簽:湖南 銅川 崇左 湘潭 黃山 仙桃 蘭州 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell中重定向的深入講解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    靖江市| 南汇区| 连云港市| 屯昌县| 英吉沙县| 石嘴山市| 太保市| 重庆市| 泸定县| 罗山县| 印江| 清原| 大冶市| 东城区| 浦县| 五原县| 浦城县| 遂平县| 山东省| 项城市| 公主岭市| 余江县| 连平县| 麻栗坡县| 喀喇沁旗| 丹阳市| 长治县| 鹿泉市| 定边县| 河池市| 南漳县| 阿克苏市| 太和县| 观塘区| 永昌县| 乐业县| 泰宁县| 响水县| 凤城市| 大荔县| 新乐市|