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

主頁 > 知識庫 > 神奇的shell命令行輸入與輸出功能介紹

神奇的shell命令行輸入與輸出功能介紹

熱門標簽:服務(wù)外包 鐵路電話系統(tǒng) AI電銷 呼叫中心市場需求 Linux服務(wù)器 百度競價排名 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站
標準輸入/輸出和重定向,Linux發(fā)行版Fedora Core Linux,而Red Hat公司原來Red Hat Linux的開發(fā)團隊也將繼續(xù)參與這一發(fā)行版本的開發(fā)工作。

標準輸入與輸出

我們知道,執(zhí)行一個shell命令行時通常會自動打開三個標準文件,即標準輸入文件(stdin),通常對應(yīng)終端的鍵盤;標準輸出文件(stdout)和標準錯誤輸出文件(stderr),這兩個文件都對應(yīng)終端的屏幕。進程將從標準輸入文件中得到輸入數(shù)據(jù),將正常輸出數(shù)據(jù)輸出到標準輸出文件,而將錯誤信息送到標準錯誤文件中。
我們以cat命令為例,cat命令的功能是從shell命令行給出的文件中讀取數(shù)據(jù),并將這些數(shù)據(jù)直接送到標準輸出。若使用如下命令:
$ cat config 將會把文件config的內(nèi)容依次顯示到屏幕上。但是,如果cat的shell命令行中沒有參數(shù),它就會從標準輸入中讀取數(shù)據(jù),并將其送到標準輸出。例如:
$ cat
Hello world
Hello world
Bye
Bye

用戶輸入的每一行都立刻被cat命令輸出到屏幕上。另一個例子,命令sort按行讀入文件正文(當shell命令行中沒有給出文件名時,表示從標準輸入讀入),將其排序,并將結(jié)果送到標準輸出。下面的例子是從標準輸入讀入一個采購單,并將其排序。
$ sort
bananas
carrots
apples
bananas
carrots

這時我們在屏幕上得到了已排序的采購單。直接使用標準輸入/輸出文件存在以下問題:輸入數(shù)據(jù)從終端輸入時,用戶費了半天勁輸入的數(shù)據(jù)只能用一次。下次再想用這些數(shù)據(jù)時就得重新輸入。而且在終端上輸入時,若輸入有誤修改起來不是很方便。輸出到終端屏幕上的信息只能看不能動。我們無法對此輸出作更多處理,如將輸出作為另一命令的輸入進行進一步的處理等。為了解決上述問題,Linux系統(tǒng)為輸入、輸出的傳送引入了另外兩種機制,即輸入/輸出重定向和管道。

輸入重定向

輸入重定向是指把命令(或可執(zhí)行程序)的標準輸入重定向到指定的文件中。也就是說,輸入可以不來自鍵盤,而來自一個指定的文件。所以說,輸入重定向主要用于改變一個命令的輸入源,特別是改變那些需要大量輸入的輸入源。例如,命令wc統(tǒng)計指定文件包含的行數(shù)、單詞數(shù)和字符數(shù)。如果僅在shell命令行上鍵入:

$wc

wc將等待用戶告訴它統(tǒng)計什么,這時shell就好象死了一樣,從鍵盤鍵入的所有文本都出現(xiàn)在屏幕上,但并沒有什么結(jié)果,直至按下<ctrl+d>,wc才將命令結(jié)果寫在屏幕上。如果給出一個文件名作為wc命令的參數(shù),如下例所示,wc將返回該文件所包含的行數(shù)、單詞數(shù)和字符數(shù)。

$ wc /etc/passwd
20 23 726 /etc/passwd 另一種把/etc/passwd文件內(nèi)容傳給wc命令的方法是重定向wc的輸入。輸入重定向的一般形式為:命令文件名??梢杂孟旅娴拿畎褀c命令的輸入重定向為/etc/passwd文件:
$ wc /etc/passwd
20 23 726

另一種輸入重定向稱為here文檔,它告訴shell當前命令的標準輸入來自shell命令行。here文檔的重定向操作符使用。它將一對分隔符(本例中用delim表示)之間的正文重定向輸入給命令。下例將一對分隔符delim之間的正文作為wc命令的輸入,統(tǒng)計出正文的行數(shù)、單詞數(shù)和字符數(shù)。
$ wc>this text forms the content
>of the here document,which
>continues until the end of
>text delimter
>delim

在操作符后面,任何字符都可以作為正文開始前的分隔符,本例中使用delim作為分隔符。here文檔的正文一直延續(xù)到遇見另一個分隔符為止。第二個分隔符應(yīng)出現(xiàn)在新行的開頭。這時here文檔的正文(不包括開始和結(jié)束的分隔符)將重新定向送給命令wc作為它的標準輸入。
以上對shell命令行的使用。

您可能感興趣的文章:
  • 關(guān)于shell命令的定向輸出 2gt;1
  • 用shell命令讀取與輸出數(shù)據(jù)的代碼
  • 遠程linux xshell下輸出中文亂碼解決方法
  • linux c程序中獲取shell腳本輸出的實現(xiàn)方法
  • linux shell的輸出效果修改方法(界面顏色)
  • Shell腳本對文件中的行、單詞、字符進行迭代輸出示例
  • shell腳本echo輸出不換行功能增強實例
  • 一個簡單的轉(zhuǎn)換輸出的shell腳本代碼
  • shell學(xué)習(xí)之printf命令格式化輸出語句

標簽:衡水 湘潭 仙桃 黃山 銅川 蘭州 湖南 崇左

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

    • 400-1100-266
    桂林市| 张家界市| 平邑县| 永川市| 大新县| 当阳市| 图木舒克市| 南郑县| 威海市| 玛多县| 鸡东县| 略阳县| 河津市| 浙江省| 陆河县| 邹平县| 大新县| 汤阴县| 宜州市| 鹤庆县| 中方县| 阳东县| 龙岩市| 安康市| 冕宁县| 金溪县| 乌拉特前旗| 丰镇市| 白朗县| 桐庐县| 鲁甸县| 称多县| 宜宾县| 绥江县| 龙南县| 深泽县| 临沭县| 临邑县| 怀远县| 孙吴县| 曲麻莱县|