小鳥初學(xué)Shell編程(五)輸入輸出重定向

重定向作用

一個(gè)進(jìn)程默認(rèn)會(huì)打開標(biāo)準(zhǔn)輸入铃彰、標(biāo)準(zhǔn)輸出绍豁、錯(cuò)誤輸出三個(gè)文件描述符。

重定向可以讓我們的程序的標(biāo)準(zhǔn)輸出牙捉、錯(cuò)誤輸出的信息重定向文件里竹揍,那么這里還可以將文件的內(nèi)容代替鍵盤作為一種標(biāo)準(zhǔn)輸入的方式。


重定向符號(hào)

  • 輸入重定向符號(hào)"<"

  • 輸出重定向符號(hào)">"邪铲,">>"芬位,"2>","&>"


輸入重定向功能

01 輸入重定向符號(hào)"<"的作用:

會(huì)把文件的內(nèi)容當(dāng)做參數(shù)輸入到進(jìn)程带到,如下例子:

[root@omp120 home]# cat file.txt 
hello
[root@omp120 home]# read a < file.txt 
[root@omp120 home]# echo $a
hello

file.txt文件的內(nèi)容是hello昧碉,上述的例子就是把file.txt的內(nèi)容重定向到a這個(gè)變量,并把a變量打印出來阴孟。


輸出重定向功能

01 輸出重定向符號(hào)">"的作用:

會(huì)把文件內(nèi)容清空,在把輸出內(nèi)容重定向到指定的文件里税迷,并且如果文件不存在則創(chuàng)建永丝,如下例子:

[root@lincoding tmp]# echo 123 > /tmp/test
[root@lincoding tmp]# cat /tmp/test 
123
[root@lincoding tmp]# echo abc > /tmp/test
[root@lincoding tmp]# cat /tmp/test 
abc
02 輸出重定向符號(hào)">>"的作用:

會(huì)把輸出的內(nèi)容追加到指定的文件里,該文件不會(huì)被清空箭养,并且如果文件不存在則創(chuàng)建慕嚷,如下例子:

[root@lincoding tmp]# echo 123 >> /tmp/test
[root@lincoding tmp]# cat /tmp/test
123
[root@lincoding tmp]# echo abc >> /tmp/test
[root@lincoding tmp]# cat /tmp/test 
123
abc
03 輸出重定向符號(hào)"2>"的作用:

是把進(jìn)程錯(cuò)誤輸出的內(nèi)容重定向到指定的文件里,如下例子:

[root@lincoding home]# abc 
-bash: abc: command not found
[root@lincoding home]# abc > error.txt
-bash: abc: command not found
[root@lincoding home]# cat error.txt 
[root@lincoding home]# 
[root@lincoding home]# abc 2> error.txt
[root@lincoding home]# cat error.txt 
-bash: abc: command not found

以上的演示結(jié)果可以得知毕泌,abc不是Linux的命令喝检,執(zhí)行了會(huì)報(bào)錯(cuò)說abd命令未找到的錯(cuò)誤信息輸出,那么這個(gè)錯(cuò)誤信息需要用2>重定向符才能把進(jìn)程錯(cuò)誤輸出的內(nèi)容重定向到指定的文件撼泛。

04 輸出重定向符號(hào)"&>"的作用:

無論進(jìn)程輸出的信息是正確還是錯(cuò)誤的信息挠说,都會(huì)重定向到指定的文件里,如下例子:

[root@lincoding home]# abc &> file.txt
[root@lincoding home]# cat file.txt 
-bash: abc: command not found
[root@lincoding home]# free -m &> file.txt
[root@lincoding home]# cat file.txt 
             total       used       free     shared    buffers     cached
Mem:           980        918         62          0         71        547
-/+ buffers/cache:        299        681
Swap:         1983          0       1983

輸入重定向和輸出重定向組合使用

輸入和輸出也是可以組合使用的愿题,那么這個(gè)組合主要應(yīng)用于在Shell腳本當(dāng)中產(chǎn)生新的配置文件的場景损俭,如下Shell腳本例子:

#!/bin/bash
cat > /home/a.sh << EOF
echo "hello bash"
EOF

cat命令的輸出重定向到/root/a.sh腳本文件,并且用輸入重定向把EOF為腳本結(jié)尾潘酗。那么通過執(zhí)行這個(gè)腳本杆兵,就會(huì)產(chǎn)生一個(gè)內(nèi)容為echo "hello bash"文件名為a.sh的腳本文件。

執(zhí)行結(jié)果:

[root@lincoding home]# ./test.sh 
[root@lincoding home]# ls -l a.sh 
-rw-r--r--. 1 root root 18 Sep 27 16:41 a.sh
[root@lincoding home]# chmod u+x a.sh 
[root@lincoding home]# cat a.sh 
echo "hello bash"
[root@lincoding home]# ./a.sh 
hello bash

小結(jié)

以上的內(nèi)容就是關(guān)于輸入和輸出重定向的用法仔夺,那么大家要注意輸出重定向包括覆蓋和追加模式琐脏,無論是覆蓋還是追加模式,盡量不要用于我們的系統(tǒng)配置文件,那么在應(yīng)用之前大家要注意對系統(tǒng)文件進(jìn)行備份日裙。

輸入和輸出重定向吹艇,還可以組合使用,一般在Shell腳本當(dāng)中去產(chǎn)生新的配置文件的時(shí)候阅签,會(huì)用到它們的組合的方式掐暮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市政钟,隨后出現(xiàn)的幾起案子路克,更是在濱河造成了極大的恐慌,老刑警劉巖养交,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件精算,死亡現(xiàn)場離奇詭異,居然都是意外死亡碎连,警方通過查閱死者的電腦和手機(jī)灰羽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鱼辙,“玉大人廉嚼,你說我怎么就攤上這事〉瓜罚” “怎么了夜矗?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵周瞎,是天一觀的道長。 經(jīng)常有香客問我,道長笼才,這世上最難降的妖魔是什么杠输? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任放案,我火速辦了婚禮和蚪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淑趾。我一直安慰自己阳仔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布扣泊。 她就那樣靜靜地躺著驳概,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旷赖。 梳的紋絲不亂的頭發(fā)上顺又,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音等孵,去河邊找鬼稚照。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的果录。 我是一名探鬼主播上枕,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弱恒!你這毒婦竟也來了辨萍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤返弹,失蹤者是張志新(化名)和其女友劉穎锈玉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體义起,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拉背,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了默终。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椅棺。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖齐蔽,靈堂內(nèi)的尸體忽然破棺而出两疚,到底是詐尸還是另有隱情,我是刑警寧澤含滴,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布诱渤,位于F島的核電站,受9級(jí)特大地震影響蛙吏,放射性物質(zhì)發(fā)生泄漏源哩。R本人自食惡果不足惜鞋吉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一鸦做、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谓着,春花似錦泼诱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舷蒲,卻和暖如春耸袜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牲平。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工堤框, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓蜈抓,卻偏偏與公主長得像启绰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子沟使,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355