免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Shell標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹了Shell標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)是專業(yè)的梁平網(wǎng)站建設(shè)公司,梁平接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行梁平網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

文件描述符(fd):文件描述符是一個(gè)非負(fù)整數(shù),在打開(kāi)現(xiàn)存文件或新建文件時(shí),內(nèi)核會(huì)返回一個(gè)文件描述符,讀寫文件也需要使用文件描述符來(lái)訪問(wèn)文件。

內(nèi)核為每個(gè)進(jìn)程維護(hù)該進(jìn)程打開(kāi)的文件記錄表。文件描述符只適于Unix、Linux操作系統(tǒng)。

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

文件描述符

描述

映射關(guān)系

0

標(biāo)準(zhǔn)輸入,鍵盤

/dev/stdin ->  /proc/self/fd/0

1

標(biāo)準(zhǔn)輸出,屏幕

/dev/stdout ->  /proc/self/fd/1

2

標(biāo)準(zhǔn)錯(cuò)誤,屏幕

/dev/stderr ->  /proc/self/fd/2

8.2 重定向符號(hào)

符號(hào)

描述

>

符號(hào)左邊輸出作為右邊輸入(標(biāo)準(zhǔn)輸出)

>>

符號(hào)左邊輸出追加右邊輸入

<

符號(hào)右邊輸出作為左邊輸入(標(biāo)準(zhǔn)輸入)

<<

符號(hào)右邊輸出追加左邊輸入

&

重定向綁定符號(hào)

輸入和輸出可以被重定向符號(hào)解釋到shell。

shell命令是從左到右依次執(zhí)行命令。

下面n字母是文件描述符。

8.3 重定向輸出

1)覆蓋輸出

一般格式:[n]>word

如果n沒(méi)有指定,默認(rèn)是1

示例:

打印結(jié)果寫到文件:echo "test" > a.txt

當(dāng)沒(méi)有安裝bc計(jì)算器時(shí),錯(cuò)誤輸出結(jié)果寫到文件:echo "1 + 1" |bc2 > error.log

2)追加重定向輸出

一般格式:[n]>>word

如果n沒(méi)有指定,默認(rèn)是1

示例:

打印結(jié)果追加到文件:echo "test" >> a.txt

當(dāng)沒(méi)有安裝bc計(jì)算器時(shí),錯(cuò)誤輸出結(jié)果追加文件:echo "1 + 1" |bc2 > error.log

8.4 重定向輸入

一般格式:[n]<word

如果n沒(méi)有指定,默認(rèn)是0

示例:

a.txt內(nèi)容作為grep輸入:grep "test" --color < a.txt

8.5 重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

1)覆蓋重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

兩種格式重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤:

&>word和>&word 等價(jià)于 >word 2>&1

&將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)輸入綁定到一起,重定向word文件。

示例:

當(dāng)不確定執(zhí)行對(duì)錯(cuò)時(shí)都覆蓋到文件:echo "1 + 1" |bc &> error.log

當(dāng)不確定執(zhí)行對(duì)錯(cuò)時(shí)都覆蓋到文件:echo "1 + 1" |bc > error.log 2>&1

2)追加標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

追加格式:&>>word  等價(jià)于>>word2>&1

當(dāng)不確定執(zhí)行對(duì)錯(cuò)時(shí)都追加文件:echo "1 + 1" |bc &>> error.log

將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)標(biāo)準(zhǔn)輸入追加重定向到word:

<<[-]word

  here-document

delimiter

從當(dāng)前shell讀取輸入源,直到遇到一行只包含delimiter終止,內(nèi)容作為標(biāo)準(zhǔn)輸入。

將eof標(biāo)準(zhǔn)輸入作為cat標(biāo)準(zhǔn)輸出再寫到a.txt:

# cat << eof
123
abc
eof
 
123
abc
# cat > a.txt << eof
> 123
> abc
> eof

8.6 重定向到空設(shè)備 

/dev/null是一個(gè)空設(shè)備,向它寫入的數(shù)組都會(huì)丟棄,但返回狀態(tài)是成功的。與其對(duì)應(yīng)的還有一個(gè)/dev/zero設(shè)備,提供無(wú)限的0數(shù)據(jù)流。

在寫Shell腳本時(shí)我們經(jīng)常會(huì)用到/dev/null設(shè)備,將stdout、stderr輸出給它,也就是我們不想要這些輸出的數(shù)據(jù)。

通過(guò)重定向到/dev/null忽略輸出,比如我們沒(méi)有安裝bc計(jì)算器,正常會(huì)拋出沒(méi)有發(fā)現(xiàn)命令:

# echo "1 + 1" |bc >/dev/null 2>&1

這就讓標(biāo)準(zhǔn)和錯(cuò)誤輸出到了空設(shè)備。

忽略標(biāo)準(zhǔn)輸出:

# echo "test" >/dev/null

忽略錯(cuò)誤輸出:

# echo "1 + 1" |bc 2>/dev/null

博客地址:http://lizhenliang.blog.51cto.com

QQ群:323779636(Shell/Python運(yùn)維開(kāi)發(fā)群)

8.7 read命令

read命令從標(biāo)準(zhǔn)輸入讀取,并把輸入的內(nèi)容復(fù)制給變量。

命令格式: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars][-p prompt] [-t timeout] [-u fd] [name ...]

-e

在一個(gè)交互shell中使用readline獲取行

-r

不允許反斜杠轉(zhuǎn)義任何字符

-s

隱藏輸入

-a array

保存為數(shù)組,元素以空格分隔

-d delimiter

持續(xù)讀取直到遇到delimiter第一個(gè)字符退出

-i text

將test文本作為

-n nchars

讀取nchars個(gè)字符返回,而不是等到換行符

-N nchars

讀取nchars個(gè)字符返回,除非遇到文件結(jié)束符或超時(shí),其他分隔符都被忽略

-p prompt

提示信息

-t timeout

等待超時(shí)時(shí)間,秒

-u fd

指定文件描述符號(hào)碼作為輸入,默認(rèn)是0

name

變量名

示例:

獲取用戶輸入保存到變量:
# read -p "Please input your name:" VAR
Please input your name: lizhenliang
# echo $VAR
lizhenliang
用戶輸入保存為數(shù)組:
# read -p "Please input your name:" -a ARRAY
Please input your name: a b c
# echo ${ARRAY[*]}
a b c
遇到e字符返回:
# read -d e VAR
123
456
e
# echo $VAR
123 456
從文件作為read標(biāo)準(zhǔn)輸入:
# cat a.txt
adfasfd
# read VAR < a.txt
# echo $VAR
adfasfd
while循環(huán)讀取每一行作為read的標(biāo)準(zhǔn)輸入:
# cat a.txt |while read LINE; do echo$LINE; done
123
abc
分別變量賦值:
# read a b c
1 2 3
# echo $a
1
# echo $b
2
# echo $c
3
# echo 1 2 3 | while read a b c;do echo"$a $b $c"; done
1 2 3

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Shell標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:Shell標(biāo)準(zhǔn)輸入、輸出和錯(cuò)誤的示例分析-創(chuàng)新互聯(lián)
當(dāng)前URL:http://newbst.com/article44/doojee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航網(wǎng)站策劃全網(wǎng)營(yíng)銷推廣小程序開(kāi)發(fā)網(wǎng)頁(yè)設(shè)計(jì)公司軟件開(kāi)發(fā)

廣告

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

微信小程序開(kāi)發(fā)