Shell中如何實現(xiàn)重定向-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Shell中如何實現(xiàn)重定向,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)普陀免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

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

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

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

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

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

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

重定向

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

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

$ 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)輸出被重定向為output,因此其輸出被寫入output文件。

需要注意的是,如果output不存在,將自動創(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)輸入重定向為input,將標(biāo)準(zhǔn)輸出重定向為output:

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

文件描述符

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

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

$ sort < input
$ sort 0< input

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

$ ls > output
$ ls 1> output

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

$ sort < input 1>> output 2> error

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

下面的命令將標(biāo)準(zhǔn)輸出重定向為output文件,標(biāo)準(zhǔn)錯誤仍然顯示在屏幕上:

$ sort < input > output

下面的命令將標(biāo)準(zhǔn)輸出重定向為output文件,將標(biāo)準(zhǔn)錯誤重定向為error文件:

$ sort < input > output 2> error

下面的命令將標(biāo)準(zhǔn)輸出重定向為output文件,使用2>&1將標(biāo)準(zhǔn)錯誤重定向為標(biāo)準(zhǔn)輸出:

$ sort < input > output 2>&1

上面的例子中,標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤都會被重定向為output文件。

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

$ sort < input > output 2> output

上述就是小編為大家分享的Shell中如何實現(xiàn)重定向了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:Shell中如何實現(xiàn)重定向-創(chuàng)新互聯(lián)
標(biāo)題URL:http://bm7419.com/article38/dihopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈定制網(wǎng)站、Google搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化